我有两个与UNION合并的SELECT查询.这是MySQL查询:
SELECT `id`,`type`,`text`
FROM my_table
WHERE position = '1'
AND status = '1'
AND targeting = 'all'
UNION
SELECT `id`,`type`,`text`
FROM my_table
WHERE position = '1'
AND status = '1'
AND targeting LIKE '%US%'
Run Code Online (Sandbox Code Playgroud)
我怎样才能找出用TRUE执行的这两个SELECT查询,以便从所需的行中获取结果?
您可以在查询中添加一个额外的列,该列返回不同的常量,具体取决于查询的哪个部分成功:
SELECT 'query1' AS `src`, `id`, `type`, `text`
FROM my_table
WHERE position = '1' AND status = '1' AND targeting = 'all'
UNION ALL
SELECT 'query2' AS `src`, `id`, `type`, `text`
FROM my_table
WHERE position = '1' AND status = '1' AND targeting LIKE '%US%'
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您根本不需要UNION:
SELECT
targeting LIKE '%US%' AS `targeting_like_us`,
targeting = 'all' AS `targeting_equals_all`,
`id`,
`type`,
`text`
FROM my_table
WHERE position = '1'
AND status = '1'
AND (targeting LIKE '%US%' OR targeting = 'all')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
119 次 |
| 最近记录: |