【发布时间】:2015-10-14 09:24:50
【问题描述】:
我有两个表,我正在尝试加入它们并在 mySQL 上使用 LIKE 函数。
我的初始代码是:
select A.column
from A
join B
on (B.column) like ('%A.column%');
然后我搜索了stackoverflow过去的答案,发现我的版本没有错,同时我发现这个版本也不起作用:
select A.column
from A
join B
on B.column like '%'+ A.column +'%';
最后我用了这个:
select A.CPM , B.column , A.column
from A
join B
on B.column like concat('%', A.column,'%');
它奏效了。我的问题是为什么以前的版本不起作用?是因为mySQL版本吗?根据我的研究,所有 3 个版本的语法都是正确的。不过,前两个在 mySQL 上的结果是空白的。
【问题讨论】:
-
第一次只是
string literal第二次使用+不用于字符串连接,最后一次是在运行时构建。这就是最后一个有效的原因。 -
@lad2025 第二个有什么问题?
-
+不是用于字符串连接,而是用于添加。 -
SELECT '%' + 'a' + '%'=> 0 使用+我的 slq 尝试转换为数字并计算总和。