1

为什么当我添加and到此查询以按标记字符串进行过滤时,我没有得到任何结果。我如何包括这个:

`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

这是表结构......

在此处输入图像描述

谢谢

4

2 回答 2

2

为了

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

我想你的意思是

and `subject_tags`.`string_en` LIKE  '%beach%'
于 2013-06-03T06:05:47.227 回答
1

如果要匹配模式,则可以使用 Jim Garrison 回答的“LIKE”运算符。

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

但是,如果您想要该列的确切术语“海滩”,那么您应该是这样的:

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

您还可以查看比较函数和运算符

于 2013-06-03T06:44:13.483 回答