![]() |
Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Есть строковая переменная $String. Ее содержимое заранее не известно.
Есть таблица БД table_sample со строковым полем SAMPLE. Записи сформированы зарание.
Надо узнать максимально быстро, есть ли запись в таблице, у которой SAMPLE является частью строки $String
К примеру
если $String = 1234567890abcdefg и SAMPLE = 7890ab, то это правильно
то есть не так: select * from table_sample where `SAMPLE` LIKE '%".$String."%'
а как то вот так: select * from table_sample where $String LIKE '%SAMPLE%'
Неактивен
В более общем виде через regexp можно, но здесь можно и locate'ом ограничиться.
mysql> create table t_5083_sample(SAMPLE varchar(80)); Query OK, 0 rows affected (0.00 sec) mysql> insert into t_5083_sample values('7890ab'); Query OK, 1 row affected (0.00 sec) mysql> insert into t_5083_sample values('789~0ab'); Query OK, 1 row affected (0.00 sec) mysql> select * from t_5083_sample; +---------+ | SAMPLE | +---------+ | 789~0ab | | 7890ab | +---------+ 2 rows in set (0.00 sec) mysql> select * from t_5083_sample where locate(SAMPLE,'___7890ab___')>0; +--------+ | SAMPLE | +--------+ | 7890ab | +--------+ 1 row in set (0.00 sec)
Неактивен
deadka написал:
В более общем виде через regexp можно, но здесь можно и locate'ом ограничиться.
СПАСИБО вроде это оно)
Неактивен
Добрый день!
У меня вопрос по схожей теме, но есть нюансы.
есть таблица типа:
table
----------------------------
id | column1 | column2
----------------------------
1 | Монитор | monitor
2 | RAM | ram
3 | Цвет | color
есть переменная string, например
$str = 'monitor,ram';
- значение этой переменной заранее неизвестно и может меняться, но все слова перечислены через запятую, их может быть до 10 шт.
мне нужно сделать запрос типа
"SELECT column1 FROM table WHERE column2 IN ('{$str}')"
Прочитал, что IN работает только так:
..... WHERE column2 IN (1,2,3,4)"
или
..... WHERE column2 IN ('monitor','ram','color')".
в $str значения без кавычек. Тип поля column1 и column2 - VARCHAR.
Как можно правильно выполнить подобный запрос, может вместо IN использовать что-то другое?
Или придется писать функцию, которая переменную $str приведет из вида:
monitor,ram,color
к виду:
'monitor','ram','color' - но это крайний вариант.
Неактивен
Вопрос снят.
переменную $str привел к виду:
$str = '1,8,15,3';
, где значения - это id-шники из другой таблицы.
Неактивен
Страниц: 1