2013-06-03 3 views
1

почему, когда я добавляю and к этому запросу для фильтрации по тегу string, я не получаю никаких результатов. Как включают следующее:где/и предложение SQL по трем таблицам

`subject_tags`.`string_en` = '%beach%'" 

правильно?

SELECT *, (3959 * acos(cos(radians(22.2863943)) * cos(radians(lat)) * cos(radians(subject.long) - radians(114.1491375)) + sin(radians(22.2863943)) * sin(radians(lat)))) 
AS distance 
FROM subject 
JOIN `subject_to_tag` ON `subject_to_tag`.`subject_id` = `subject`.`id` 
JOIN `subject_tags` ON `subject_tags`.`id` = `subject_to_tag`.`tag_id` 
and `subject_tags`.`string_en` = '%beach%'  
LIMIT 10 

Это структура таблицы ....

enter image description here

благодаря

ответ

2

Для

and `subject_tags`.`string_en` = '%beach%' 

Я думаю, что вы имели в виду

and `subject_tags`.`string_en` LIKE '%beach%' 
+0

безупречный! конечно, это спасло меня! благодаря – dijkstra8x

1

Если вы хотите совместить шаблон, тогда вы можете использовать оператор «LIKE», как ответил Джим Гаррисон.

and `subject_tags`.`string_en` LIKE '%beach%' 

Но если вы хотите именно термин «пляж» для столбца, то это должно быть как:

and `subject_tags`.`string_en` = 'beach'. 

Также вы можете посмотреть на Comparison Functions and Operators.

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