例如,如果queue_watch显示为0,我希望实际的mysql输出说"不",否则说"是".改变计划不是一种选择.
SELECT user.user_name, queue.queue_name, queue_access.queue_access,
queue_access.queue_watch
FROM queue_access
INNER JOIN user ON user.user_id = queue_access.user_id
INNER JOIN queue ON queue.queue_id = queue_access.queue_id
WHERE queue_access <> '' OR queue_watch = 1
ORDER BY user_name;
Run Code Online (Sandbox Code Playgroud)
SQL适用于我需要的东西,但我想知道是否可以使用SQL而不是PHP来更改输出.此外,是否可以将一行中的所有queue_names分组到每个user_name,因此我不必返回153行.
谢谢
这不是一个头脑.我觉得最好在查询中完成.
试试这个 -
SELECT user.user_name, queue.queue_name, queue_access.queue_access,
IF(queue_access.queue_watch = 0, 'No', 'Yes')
FROM queue_access
INNER JOIN user ON user.user_id = queue_access.user_id
INNER JOIN queue ON queue.queue_id = queue_access.queue_id
WHERE queue_access <> '' OR queue_watch = 1
ORDER BY user_name;
Run Code Online (Sandbox Code Playgroud)
您可以使用标准CASE表达式.编写CASE表达式有两种略有不同的方法.
简单的案例表达:
SELECT
CASE queue_access.queue_watch
WHEN 0 THEN 'No'
ELSE 'Yes'
END AS your_alias,
...
Run Code Online (Sandbox Code Playgroud)
搜索案例表达:
SELECT
CASE WHEN queue_access.queue_watch = 0 THEN 'No' ELSE 'Yes' END AS your_alias,
...
Run Code Online (Sandbox Code Playgroud)
或者您可以使用MySQL特定的IF构造:
SELECT
IF(queue_access.queue_watch, 'Yes', 'No') AS your_alias,
...
Run Code Online (Sandbox Code Playgroud)
您可能想要考虑如果您的值不是0或1,会发生什么.
| 归档时间: |
|
| 查看次数: |
5941 次 |
| 最近记录: |