SELECT
DISTINCT(p_title), title
FROM
`reg`
WHERE
( C_title REGEXP '[ENGINE]' or C_title REGEXP '[ENGINEER]')
AND title IN ('Prof. Dr.','Dr.','Mr.')
或
ORDER BY FIELD (title,'Prof. Dr.','Dr.')
我想在我的查询中仅列出Prof. Dr.和Dr.字段。但是,先是教授和第二博士......但是,这些代码不起作用。
WHEN title = 'Prof. Dr.' THEN 1
WHEN title = 'Assoc. Prof. Dr.' THEN 2
WHEN title = 'Assist. Prof. Dr.' THEN 3
WHEN title = 'Dr.' THEN 4
WHEN title != 'Ms.' THEN 5
WHEN title != 'Mr.' THEN 6
ELSE 7
你能告诉我其他方法吗?
答案 0 :(得分:0)
使用包含所有可能值的enumerated字段,以获得更好的索引效果,更小的数据量和更少的错误(例如,某人在“Mr.”之后错过了点,
您正在寻找的是if-statements堆叠:
SELECT title, IF('title' = 'Mr.', 1,
IF (title = 'Mrs.', 2,
IF (title = 'Dr.', 3, 0)
)
)
AS title_number
FROM users...
将返回
title | title_number
--------------------
"Mr." | 1
"xxx" | 0
...