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

可能なすべての値を含む列挙型フィールドを使用して、インデックスのパフォーマンスを向上させ、データ量を減らし、エラーを減らします (たとえば、「Mr.」の後のドットがない人など)。

あなたが探しているのは、積み重ねられた 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 に答える