php - 单个查询中的两个结果

标签 php mysql sql

这是问我问题的简化表:

      Names
+------+----------+
|  id  |   name   |
|------+----------|
|  1   |  Alex    |
|      |          |
|  2   |  John    |
|      |          |
|  3   |  Fred    |
|      |          |
|  4   |  Andy    |
+------+----------+

id: primary key

如何只执行一个单个 查询并获取两个名称?我有两个 ID n1n2,我想检索两个对应的名称:

SELECT name1, name2 FROM names WHERE ...n1....n2...

执行 n1=2n2=3 的查询后,结果应该是:

+------------+------------+
|   name1    |   name2    |
+------------+------------+
|   John     |   Fred     |
+------------+------------+

这可能吗?我不知道。

最佳答案

您可以将聚合函数与 CASE 表达式一起使用:

select
  max(case when id = 2 then name end) Name1,
  max(case when id = 3 then name end) Name2
from names;

参见 Demo

关于php - 单个查询中的两个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17577072/

相关文章:

javascript - 使用ajax从php到javascript获取值

php - 多次访问时是否值得将对象属性保存到变量中?

php - twilio say 动词嵌套在拨号动词中

php - 转义数据的最佳方式 JS->PHP->MySQL,反之亦然

sql - 确定 SQL 数据中特定事件发生的频率和持续时间

mysql - 组合按同一列分组的两个 GROUP BY 查询

php - 自动运行一个php脚本

PHP + MYSQL,比听起来更软或可配置的

mysql - 在 Rails 中用数字和文本对字符串进行排序

mysql - 使用mysql将具有重复项的大表插入具有唯一键的新表中