【发布时间】:2019-11-14 23:37:34
【问题描述】:
我想在查询的 SELECT 语句中使用 LIKE 或 REGEX(不是在 WHERE 语句中)。
如果 post_content 包含“base64”,我希望在查询输出中看到 1。有可能吗?
SELECT post_content, length(post_content), LIKE('%base64%') AS contained
FROM `wp_posts`
order by length(post_content) desc
【问题讨论】:
-
问题是
LIKE('%base64%')本身在这里没有任何意义。您还没有告诉数据库您要针对哪个列运行LIKE比较。 (您在输出的其他列中提到 post_content 的事实无关紧要 - 您必须知道,SQL 可以从 SELECT 中的许多不同列输出。每个单独的输出列必须是自包含和自描述的,因此您需要告诉它要为该输出处理哪一列。Mangesh's 第二个建议是最简单的方法。 -
@ADyson:作为替代方案,是否可以使用类似于 SELECT 1 from dual WHERE post_content LIKE('%base64%') 的东西? - stackoverflow.com/questions/73751/…
-
您认为这会如何运作?虚拟
dual表不包含名为post_content的字段。您必须从实际存储数据的表中进行选择。
标签: mysql