я имею эту проблему прямо здесь .. я получил 3 + идентификаторы строк в таблице, 3 из них являются по ключевым словам:MySQL выберите ключевые слова из 3-х строк
kw1, kw2, kw3
И тогда я значение
$kw1, $kw2, $kw3
так таблица выглядит
id | kw1 | kw2 | kw3 |
----------------------
1 | $kw1| $kw2| $kw3|
....
По этому запросу я могу выбрать только тогда, когда все три из них соответствует
SELECT id FROM table WHERE kw1='".$kw1."' OR kw2 = '".$kw2."' OR kw3 = '".$kw3."'
Я также пытался сделать что-то вроде этого:
SELECT id FROM table WHERE
(kw1='".$kw1."' OR kw2 = '".$kw2."' OR kw3 = '".$kw3."') OR
(kw1='".$kw3."' OR kw2 = '".$kw2."' OR kw3 = '".$kw1."') OR
(kw1='".$kw2."' OR kw3 = '".$kw2."' OR kw3 = '".$kw1."') OR
... ETC
Но я хотел спросить, есть ли какой-то другой путь - «умнее» один?
Спасибо!
Вы должны переосмыслить свой дизайн базы данных - я думаю, что ключевые слова должны иметь собственную таблицу. Что делать, если вы хотите иметь 4 ключевых слова для какого-то элемента? – 1615903
@ user1615903 Или вы можете использовать ключевые слова в одном поле с разделителем. '| KW1 | KW2 | kw3 |' - это позволяет вам LIKE '% | $ query |%' или взорваться ('|', $ db_result). Но тогда, предлагая изменения структуры БД, обычно бессмысленно, слишком много кода вращается вокруг текущей структуры. –