如果使用mysql匹配运算符值,如何从表中获取所有行?

时间:2016-06-15 11:29:59

标签: mysql sql sql-like

如果喜欢运算符值匹配并且为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代替likeGroup By运算符可以完成,但我需要按ticket列进行过滤。那么这可以在单个查询中实现这种任务吗?

2 个答案:

答案 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`