如果使用 mysql 运算符值匹配,如何从 table 中获取所有行?
How to fetch all rows from table if like operator value match using mysql?
如果 like 运算符值匹配且为真,我将尝试获取所有记录。
我有 table 票。
---------------------------
: id : ticket : user_id :
---------------------------
: 1 : 2546 : 2 :
---------------------------
: 2 : 8475 : 2 :
---------------------------
我正在尝试这个查询
SELECT * FROM `ticket` WHERE `ticket` LIKE '%2546%'
以上查询返回单个结果并且工作正常。但是,如果 like 运算符值匹配并且 table 具有该行的更多记录 user_id,则我需要这两行。我试过分组
SELECT * FROM `ticket` WHERE `ticket` LIKE '%2546%'
GROUP BY `user_id `
我知道如果使用 user_id = 2
而不是 like
和 Group By
运算符就可以做到,但我需要按 ticket
列进行过滤。那么是否可以在单个查询中完成此类任务?
使用嵌套查询:
SELECT *
FROM ticket t1
WHERE user_id IN (
SELECT DISTINCT user_id
FROM ticket t2
WHERE ticket LIKE '%2456%'
);
使用自连接作为
SELECT U . *
FROM `ticket` t, `ticket` U
WHERE t.`ticket` LIKE '%2546%'
AND t.`user_id` = U.`user_id`
如果 like 运算符值匹配且为真,我将尝试获取所有记录。
我有 table 票。
---------------------------
: id : ticket : user_id :
---------------------------
: 1 : 2546 : 2 :
---------------------------
: 2 : 8475 : 2 :
---------------------------
我正在尝试这个查询
SELECT * FROM `ticket` WHERE `ticket` LIKE '%2546%'
以上查询返回单个结果并且工作正常。但是,如果 like 运算符值匹配并且 table 具有该行的更多记录 user_id,则我需要这两行。我试过分组
SELECT * FROM `ticket` WHERE `ticket` LIKE '%2546%'
GROUP BY `user_id `
我知道如果使用 user_id = 2
而不是 like
和 Group By
运算符就可以做到,但我需要按 ticket
列进行过滤。那么是否可以在单个查询中完成此类任务?
使用嵌套查询:
SELECT *
FROM ticket t1
WHERE user_id IN (
SELECT DISTINCT user_id
FROM ticket t2
WHERE ticket LIKE '%2456%'
);
使用自连接作为
SELECT U . *
FROM `ticket` t, `ticket` U
WHERE t.`ticket` LIKE '%2546%'
AND t.`user_id` = U.`user_id`