我如何使用MYSQL查询中的if
语句返回yes
如果是真的话no
如果不是?
参见示例:
IF(table_name.field_name_value = 1, 'yes','no') AS active
我正在尝试这样的事情,但没有成功
答案 0 :(得分:1)
您可以使用case
功能:
select case
when table_name.field_name_value = 1 then 'yes'
else 'no'
end case as active
from table_name
虽然if
功能也应该有效。你可以发布完整的查询吗?
答案 1 :(得分:1)
你可以在mysql查询中使用CASE。 像
CASE WHEN table_name.field_name_valud = 1 THEN 'Yes' ELSE 'No' END As active
答案 2 :(得分:1)
来自documentation on IF()
function:
mysql> SELECT IF(1<2,'yes','no');
-> 'yes'
所以,基本上,语法如上所述。
修改强>
你说我的例子是不正确的。因此,我为您提供了一个证明(证明了我上面提到的文档中的示例):
我有一个表,其中包含uid
列,其中包含用户的ID。该表是某些站点上数据库的一部分(不相关)。当我进行以下查询时:
SELECT `uid`, IF(`uid`=3, 'yes', 'no') AS `active` FROM `mysite_users`;
我收到以下结果:
+-----+--------+
| uid | active |
+-----+--------+
| 0 | no |
| 1 | no |
| 3 | yes |
| 8 | no |
| 9 | no |
| 10 | no |
| 11 | no |
| 12 | no |
| 13 | no |
| 14 | no |
| 15 | no |
+-----+--------+
11 rows in set (0,00 sec)
正是我所期望的(以及阅读文档后应该注意的事项)。它仍然不适合你吗?
答案 3 :(得分:1)
请参阅http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html
SELECT CASE WHEN table_name.field_name_value = 1 THEN 'yes'
ELSE 'no' END;