考虑以下简单的 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`