MySQL:5.5.15-55 Percona 服务器 (GPL),版本 21.0
我试图通过将表与其他三个值(按顺序)进行比较来从表中获取一个值。如果 value = 'value1' 停止,并使用该值,如果不将其与 'value2' 进行比较,依此类推。
伪查询:
SELECT value FROM tbl_variable
IF (WHERE object = 'value1')
ELSE IF (WHERE object = 'value2')
ELSE (WHERE object = 'default');
我想我需要使用控制流函数(可能是案例?),但我在理解语法时遇到了问题。
编辑
表结构
| Field | Type | Null | Key | Default | Extra |
+-------------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| var_name | varchar(50) | NO | | | |
| object | varchar(102) | YES | MUL | NULL | |
| value | text | NO | | NULL | |
最终查询基于绿魔的回答。
SELECT (CASE
WHEN object = 'value1' THEN value
WHEN object = 'value2' THEN value
WHEN object = 'default' THEN value
END)
AS value
FROM tbl_variables
WHERE value IS NOT NULL
AND var_name = 'NAME'
LIMIT 1;