我想根据另一个列值选择/检查文本列中的值
SELECT tableA.randomID, wp_posts.post_content, wp_posts.ID
FROM tableA, wp_posts
WHERE wp_posts.post_content LIKE '%tableA.randomID%'
AND tableA.randomID = '110507B2VU'
Run Code Online (Sandbox Code Playgroud)
但这不起作用,我如何设置LIKE语句
这不起作用:
SELECT tableA.randomID, wp_posts.post_content, wp_posts.ID
FROM tableA, wp_posts
WHERE wp_posts.post_content LIKE '%110507B2VU%'
Run Code Online (Sandbox Code Playgroud)
Cod*_*aft 15
当你用引号括起来的东西 - 它被视为一个文字值,所以在你的第一个查询中 - 你把它放在哪里LIKE '%tableA.randomID%'--MySQL实际上把它当作一个字符串.
没有引号,它将取值 - 即:
WHERE something LIKE tableA.randomID
Run Code Online (Sandbox Code Playgroud)
这实际上会将'something'与tableA.randomID的值进行比较,而不是文字字符串.
然后包含你的%通配符以使你的LIKE语句与'equals'比较不同,尝试使用CONCAT()函数.
WHERE something LIKE CONCAT("%",tableA.randomID,"%")
Run Code Online (Sandbox Code Playgroud)
如果tableA.randomID的值是这样的话,那将会是......' banana'实际上最终是这样的:
WHERE something LIKE '%banana%'
Run Code Online (Sandbox Code Playgroud)
我希望我能够清楚地解释一下;-)
你可以使用 concat() 和 like
like concat('%',variable_name,'%')
Run Code Online (Sandbox Code Playgroud)
在你的情况下
SELECT tableA.randomID, wp_posts.post_content, wp_posts.ID
FROM tableA, wp_posts
WHERE wp_posts.post_content LIKE CONCAT('%',tableA.randomID,'%')
AND tableA.randomID = '110507B2VU'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10627 次 |
| 最近记录: |