Содержимое всего столбца pos: home01+home03 или home02+home04.
Мне нужно выбрать строки, где pos содержит home01.

$pos = 'home01';
$stmt = $db->query("select * from banners where pos contains '" . $pos . "'");

Ничего не выбрано.
Также мне нужно избегать выражения LIKE из-за большой таблицы.
Любая помощь?

2
qadenza 24 Апр 2017 в 17:22

2 ответа

Лучший ответ

Вы можете использовать матч против

ALTER TABLE table_name ADD FULLTEXT(pos);

SELECT * FROM banners MATCH(pos) AGAINST('+$pos+');
2
Nishant Nair 24 Апр 2017 в 14:35

Используйте этот запрос

select * from banners where pos like'%" . $pos . "'";

Этот запрос возвращает всю строку, где первое совпадение с home01

0
Shafiqul Islam 24 Апр 2017 в 14:25