Селект по регулярному выражению

codex

Новичок
Селект по регулярному выражению

Всем доброго дня

Проблема такая. Есть поле вида 1,2,3,4,5,6,55,88,6454
Нужно выбрать все строки, где в этом поле есть, к примеру, 5. Никак не получается сделать так, чтобы выбирались строки, где 5 в начале или в конце строки. Грешен, регулярные выражения знаю очень и очень посредственно.
 

Wicked

Новичок
FIND_IN_SET(str,strlist)

Returns a value in the range of 1 to N if the string str is in the string list strlist consisting of N substrings. A string list is a string composed of substrings separated by ‘,’ characters. If the first argument is a constant string and the second is a column of type SET, the FIND_IN_SET() function is optimized to use bit arithmetic. Returns 0 if str is not in strlist or if strlist is the empty string. Returns NULL if either argument is NULL. This function does not work properly if the first argument contains a comma (‘,’) character.

mysql> SELECT FIND_IN_SET('b','a,b,c,d');
-> 2
а вообще архитектура твоей бд хромает.
 

codex

Новичок
Ну это сделано, очевидно, чтобы не создавать ещё одну таблицу для прикреплённых сущностей. Спасибо за помощь!
 

Wicked

Новичок
еще можно так:
... where CONCAT("," , field, ",") LIKE ",5," ... :)

а что страшного в еще одной таблице, если она призвана значительно облегчить жизнь и уменьшить кол-во костылей?
 
Сверху