mysql - if 条件中的 Select 语句不适用于其他参数

标签 mysql sql

我正在尝试这样做

SELECT 
  table1.*,
  table2.id as t2id 
FROM 
  table1 as t1 
INNER JOIN table2 as t2 
  ON t2.field1 = t1.field2 
  AND t1.field2 = 'value'
  AND IF(SELECT COUNT(*) FROM table2 WHERE id = 10 > 0)

错误提示

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 

'SELECT COUNT(*) FROM table2 WHERE id = 10 > 0) LIMIT ' at line 1

我知道错误与 if 条件有关,因为当我删除它时,它起作用了,但我的想法是如果选择不成功,select 将返回一个空值,即它没有在 id 为 10 的表中找到任何内容来自表 2。

最佳答案

您缺少 if 的“then”部分。

它看起来太像 IF (condition, then, else),但你只是在执行条件而没有任何输出。

这样试试:

AND IF((SELECT COUNT(*) FROM table2 WHERE id = 10) > 0, 'true', 'false')

关于mysql - if 条件中的 Select 语句不适用于其他参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16239364/

相关文章:

mysql - 没有可用的包 mysql-server

php - mysql_fetch_array() 问题

php - 搜索用户距离内的项目(地理位置)PHP/MySQL

mysql - 如果右表没有记录,左连接查询不返回左表记录

sql - 满足条件的 COUNT 行(在具有特定条件的行处重置)

SQL 连接而不是嵌套查询

php - 在对象中使用 PDO

php - 如何将数据分组为从周一到周日开始的周

php - 一条SQL语句删除两个表的数据

asp.net - SQL Server - 分组依据,混合计数