0
要看看是否有在我的数据库托德我现在做到以下几点:有没有更简单的方法来查看一个字段是否有一定的价值?
SELECT * FROM MyTable WHERE name='Todd' LIMIT 1
然后我检查光标,看看它的大小== 1,有没有办法从返回一个0或1 select语句如果条件为false或true,而不是字段列表?
要看看是否有在我的数据库托德我现在做到以下几点:有没有更简单的方法来查看一个字段是否有一定的价值?
SELECT * FROM MyTable WHERE name='Todd' LIMIT 1
然后我检查光标,看看它的大小== 1,有没有办法从返回一个0或1 select语句如果条件为false或true,而不是字段列表?
你可以做
SELECT COUNT(*) it_exists
FROM
(
SELECT 1
FROM MyTable
WHERE name = 'Todd'
LIMIT 1
) q;
一个内部的选择保证LIMIT
应用。这意味着如果您假设成千上万的匹配行数据库引擎将停止并在第一个结果之后返回结果,而不是遍历所有结果。
输出
| it_exists | |-----------| | 1 |
下面是SQLFiddle演示
我的SQLite的技能是有点弱,是 'name_exists' 和 'q' 有什么目的?它似乎没有任何 –
'name_exists',或者更确切地说'it_exists'在答案的更新版本中是列别名,因此您可以将它作为客户端代码中的其他列进行读取。 'q'是子查询的别名(内部选择)。有一个很好的做法(某些数据库系统,如MySQL或SQLServer如果没有一个,会抛出异常)。它可以命名,但是你当然想要。 – peterm
这很有道理!感谢您的跟进,您的回答非常有帮助:) –