Запрос и поиск

Станислав
На сайте с 27.12.2009
Offline
237
318

Уже соображалка не соображает, может кто подскажет.

Есть таблица вида

TABLE

id|id_post|word

ее содержимое примерно такого вида

id|id_post|word

1 | 1000 | NULL

2 | NULL | слово2

3 | NULL | слово3

4 | 3060 | NULL

Есть данные по которым нужно дергать содержимое их данный таблицы

$id_post = 1100;

$word = 'слово,слово1,слово2,слово3,слово4';

Собственно сам вопрос состоит в том, могу ля я как то произвести поиск по $word не прогоняя все это дело через foreach?

Если бы в таблице были теги, а искал бы я по тегУ, то написал бы такой запрос

SELECT * FROM TABLE WHERE id_post='{$id_post}' or word LIKE '%{$word}%';

а нужно сделать так чтобы проверить из списка слов, существует ли одни из них в таблице (поле word)

Если не понятно, попробую разжевать по другому, в голове уже каша.

вот еще пример

в базе есть две записи

1 | 1000 | NULL

2 | NULL | слово2

Нужно найти есть ли слово из тегов в таблице или же айди

$id_post = 1100;

$word = 'слово,слово1,слово2,слово3,слово4';

SELECT * FROM TABLE WHERE id_post='{$id_post}' or word ='{$word}';

нужно чтобы в базе нашло слово

$word = 'слово,слово1,слово2,слово3,слово4';

Мы там, где рады нас видеть.
H
На сайте с 09.10.2012
Offline
11
#1

есть оператор IN, но вам нужно будет экранировать каждое отдельное слово в кавычки.

т.е. у вас должно быть

$word = "'слово1','слово2','слово3'";

SELECT * FROM TABLE WHERE id_post='{$id_post}' or word IN ({$word});

Станислав
На сайте с 27.12.2009
Offline
237
#2

Это пойдет, я $word все что угодно смогу сделать.

Спс попробую.

[umka]
На сайте с 25.05.2008
Offline
456
#3

$word = 'слово,слово1,слово2,слово3,слово4';

$words="'".implode("','",explode(',',$words))."'";

Ну а дальше уже, как посоветовали:

SELECT * FROM TABLE WHERE id_post='{$id_post}' AND word IN ({$word});

Лог в помощь!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий