次の単純な MySQL テーブルについて考えてみましょう。
| Answer |
| ---------------- |
| Extremely likely |
| Likely |
| Likely |
| Not a chance |
| Likely |
| Potato |
| Unlikely |
このテーブルから SELECT へのクエリを書きたいと思います。これは、「非常に可能性が高い」を 1 に、「可能性が高い」を 2 に、「可能性が低い」を 3 に、「可能性は低い」を 4 に置き換えます。
他のすべての回答は変換しないでください。
したがって、結果は次のようになります。
| Answer |
| ------ |
| 1 |
| 2 |
| 2 |
| 4 |
| 2 |
| Potato |
| 3 |
これは SQL だけで実行できますか?
この質問に答えた後、別のフィールドに特定の値がある場合にのみこれを行う必要があることに気付きました。ここにそのようなテーブルがあります:
| QuestionID | Answer |
| ---------- | ---------------- |
| how_likely | Extremely likely |
| how_likely | Likely |
| how_likely | Likely |
| fave_veg | Potato |
これに使用したクエリは次のとおりです。
SELECT QuestionID,
IF(
QuestionID = 'how_likely',
CASE Answer
WHEN 'Extremely likely' THEN 1
WHEN 'Likely' THEN 2
WHEN 'Unlikely' THEN 3
WHEN 'Not a chance' THEN 4
END,
Answer
) AS Answer
FROM `answers`