你好,我对sql很好,所以我需要你的帮助。
我有一个名为property的表。现在我想在同一个字段中检索具有不同值的行。我尝试了 LIKE 和 AND 但没有得到任何结果。
表格
id user_id title approved
-- ------- ----- --------
1 60 one 1
2 60 one 1
3 60 one 1
4 60 two 1
5 60 three 1
SQL QUERY:
SELECT *
FROM `property`
WHERE `user_id` =60
AND `approved` =1
AND `title` like '%one%'
AND `title` like '%two%'
我想要这个结果:
id user_id title approved
-- ------- ----- --------
1 60 one 1
2 60 one 1
3 60 one 1
4 60 two 1
任何想法?
感谢。
答案 0 :(得分:2)
使用title like '%one%' AND title like '%two%'
,您会找到一个“一”和“两”的标题。而你想要一些“一”或“两个”
SELECT *
FROM `property`
WHERE `user_id` =60
AND `approved` =1
AND (`title` like '%one%' OR `title` like '%two%')
答案 1 :(得分:1)
你必须使用
OR或||
条件。您正在使用LIKE条件来检索结果。
这将检索如果标题也有SIXTYONE。
因为SIXTYONE包含“ONE”字样。如果您正在寻找,请使用LIKE作为您提到的帖子。否则你应该使用=(等于)来得到确切的结果。谁只有头衔“ONE”。你能试试吗?
SELECT *
FROM `property`
WHERE `user_id` =60
AND `approved` =1
AND (`title`='one' || `title`='two')
答案 2 :(得分:0)
SELECT *
FROM property
WHERE user_id =60
AND approved =1
AND title in('one', 'two')
因为你已经有固定的标题,你的错误是标题不能同时一两个:)