2016-05-23 2 views
0

Как показать результат по SELECT ... WHERE LIKE с полем слова?MySQL WHERE LIKE по слову с запятой

Я пробовал это SELECT * FROM tbl_question WHERE word LIKE '%How are you?%', но он не работает.

tbl_question

+-------------+-------------------+------------+ 
| question_id | question   | word  | 
+-------------+-------------------+------------+ 
| 1   | How are you?  | How  | 
| 2   | What's your name? | What, name | 
| 3   | Hi there!   | Hi   | 
| 4   | Hi, How are you? | Hi, How | 
+-------------+-------------------+------------+ 

Пример: Если я искать "How are you?", Он будет отображать результаты по 2 ряда, такие как:

+-------------+-------------------+------------+ 
| question_id | question   | word  | 
+-------------+-------------------+------------+ 
| 1   | How are you?  | How  | 
| 4   | Hi, How are you? | Hi, How | 
+-------------+-------------------+------------+ 

или если я "Your name is?" он будет отображать результат, как:

+-------------+-------------------+------------+ 
| question_id | question   | word  | 
+-------------+-------------------+------------+ 
| 2   | What's your name? | What, name | 
+-------------+-------------------+------------+ 
+0

См. Нормализацию. – Strawberry

ответ

1

Вы можете у себе регулярное выражение таким образом

select * from my_table where question REGEXP 'How|are|you|'; 
+0

Что делать, если я ввожу «Как дела?» в моей форме поиска он отправит исходный текст. Как я могу использовать ваш код? –

+0

Разделите форматирование объявления в текстовом поле для regexp – scaisEdge

+0

используйте код сервера для создания динамического сгенерированного sql. – scaisEdge

0

Попробуйте это:

SELECT * FROM tbl_question WHERE question LIKE '%How are you?%' 
+0

Спасибо, но я хочу использовать 'WHERE word' –

0

SELECT * FROM tbl_question WHERE слово, как '% Как вы%?

Благодаря этому ваша база данных будет пытаться «дать вам назад "все данные, которые начинаются именно с предложения Как вы? и, как я вижу в слове, у вас есть только конкретные слова.

Я создал таблицу и вставить в него данные, и я использую запрос

SELECT 
     question FROM Custom WHERE word LIKE '%What%' 

так дал мне обратно на ваш второй вопрос.

Если вы можете, объясните мне, что именно вы хотите отобразить.

+0

Пример: Я вводил« Как дела? » в моей форме поиска html и отправить поиск по столбцу слов, чтобы получить результаты. –

+0

Вы должны всегда хранить первое слово из ввода в строку и использовать запрос: SELECT вопрос FROM Пользовательское слово WHERE LIKE '% custom_word%' –

0

Вы принимаете неправильное имя столбца. Замените его на question.try. SELECT * FROM tbl_question WHERE question LIKE %How are you%

+0

Спасибо, Но я не ошибаюсь. Я знаю, что я должен его заменить. с колонкой вопросов, но я должен использовать столбец слов. –

Смежные вопросы