gpt4 book ai didi

mysql - 将列值设置为行

转载 作者:行者123 更新时间:2023-11-29 07:19:17 25 4
gpt4 key购买 nike

我不确定我的问题标题是否正确,我会尝试通过示例解释我的意思。

我有以下查询:

SELECT
d.name_ascii,
d.price,
t.whois_price
FROM domain d
JOIN tld t ON d.tld_id = t.id
JOIN user_tld ut ON t.id = ut.tld_id
WHERE ut.user_id = 1
AND d.name_ascii IN ('domain.com')

返回以下内容:

+------------+---------+-------------+
| name_ascii | price | whois_price |
+------------+---------+-------------+
| domain.com | 321.000 | 15.000 |
+------------+---------+-------------+

没关系,但我需要下一个结果:

+------------------+---------+
| item | price |
+------------------+---------+
| domain.com | 321.000 |
| domain.com whois | 15.000 |
+------------------+---------+

也就是说,我需要删除名为whois_price的第三列,并将其插入作为具有相同价格<的另一行 值和串联 name_ascii 值,其中“whois”作为 item 列。

我不知道如何解决这个问题。有什么建议、提示吗?

谢谢!

最佳答案

实现此目的的一种方法是使用 UNION。

SELECT
d.name_ascii as item,
d.price
FROM domain d
WHERE d.name_ascii IN ('domain.com')
UNION ALL
SELECT
concat(d.name_ascii,' whois'),
t.whois_price
FROM domain d
JOIN tld t ON d.tld_id = t.id
JOIN user_tld ut ON t.id = ut.tld_id
WHERE ut.user_id = 1
AND d.name_ascii IN ('domain.com')

第一部分获取价格,第二部分获取 whois 价格。这是一个 SQL fiddle :http://sqlfiddle.com/#!9/d5164/3

关于mysql - 将列值设置为行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36741432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com