如果喜欢运算符值匹配并且为true,我尝试获取所有记录。
我有桌票。
---------------------------
: id : ticket : user_id :
---------------------------
: 1 : 2546 : 2 :
---------------------------
: 2 : 8475 : 2 :
---------------------------
我正在尝试此查询
SELECT * FROM `ticket` WHERE `ticket` LIKE '%2546%'
以上查询返回单个结果并且工作正常。但是如果喜欢运算符值匹配并且表中有更多记录 user_id ,我需要两行。我试过
分组SELECT * FROM `ticket` WHERE `ticket` LIKE '%2546%'
GROUP BY `user_id `
我知道如果使用user_id = 2
代替like
和Group By
运算符可以完成,但我需要按ticket
列进行过滤。那么这可以在单个查询中实现这种任务吗?
答案 0 :(得分:6)
使用嵌套查询:
SELECT *
FROM ticket t1
WHERE user_id IN (
SELECT DISTINCT user_id
FROM ticket t2
WHERE ticket LIKE '%2456%'
);
答案 1 :(得分:2)
使用自联接
SELECT U . *
FROM `ticket` t, `ticket` U
WHERE t.`ticket` LIKE '%2546%'
AND t.`user_id` = U.`user_id`