我得到了名为“teachers_db”的表,其字段名称为:
teacher_name
instrument1
instrument2
payment1
payment2
在我的程序中,我得到了教师名单以及他们所教的乐器。 即:
Mathew - piano
Mathew - drums
Adam - guitar
我想在 mySQL 中编写一个代码行,该代码行获取 teacher_name
和 instrument
(instrument1 =“piano”或 instrumnet2 =“drums”等),并且返回其付款
(如果是钢琴则为 payment1,如果是鼓则为 playment2)。
我正在为这个问题苦恼,请帮助:)
最佳答案
获取结果的一种方法是使用两个单独的查询,并结合 UNION ALL
运算符。例如:
SELECT q.teacher_name
, q.instrument1 AS instrument
, q.payment1 AS payment
FROM teachers_db q
WHERE q.instrument1 <> ''
UNION ALL
SELECT r.teacher_name
, r.instrument2 AS instrument
, r.payment2 AS payment
WHERE r.instrument2 <> ''
ORDER BY 1,2
<小时/>
另一种方法:
SELECT t.teacher_name
, CASE i.n WHEN 1 THEN t.instrument1 WHEN 2 THEN t.instrument2 END AS instrument
, CASE i.n WHEN 1 THEN t.payment1 WHEN 2 THEN t.payment2 END AS payment
FROM (SELECT 1 AS n UNION ALL SELECT 2) i
CROSS
JOIN teachers_db t
HAVING instrument <> ''
ORDER BY 1,2
关于mysql - 查找包含特定数据的字段名称(mySql),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34800497/