这是我在网站 SQLZoo 的测试框中输入的一个查询,诚然是一个随机调整。 :
SELECT title || 'fo'
FROM movie
WHERE title IS NOT NULL
AND title like '%he%';
它会返回如下所示的异常输出:
title || fo
--------------------
0
1
1
1
1
1
1
/* etc etc just 0's and 1's */
而如果我只使用以下查询:
SELECT title
FROM movie
WHERE title IS NOT NULL
AND title like '%he%';
然后我会得到我期望的非常合理的输出:
title
--------------------
Gone with the End
Dr. doLittle
Con Air.
/* et etc more movi */
所以我认为这个网站的后端使用了一种叫做 MariaDB 的东西(也许是 MySQL 的一个分支?)。
为什么我只能通过将标题与字符串连接来得到 0
和 1
的输出?
准确的说是第6部——电影《卡萨布兰卡》的id是什么。 谢谢
最佳答案
默认情况下,||
是逻辑 or
操作——不是字符串连接。所以,你的选择真的是:
select (title OR fo)
它只是检查一个或另一个是否为“真”(非零)。
运算符列表是here .
您可以通过设置模式 PIPES_AS_CONCAT
来更改此行为(参见 here )。
关于mysql - 这个神秘的 SQL 输出(使用 MariaDB)的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26473889/