0
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

你能告诉我替代方法吗?

4

1 回答 1

0

使用包含所有可能值的枚举字段,以获得更好的索引性能、更小的数据量和更少的错误(例如,有人在“先生”之后缺少点,

您正在寻找的是堆叠的 if 语句:

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

...

于 2013-05-28T08:53:02.617 回答