mysql - MySQL如何检查整数是否包含0?
问题描述
我试图从 MySQL 中提取一堆记录,条件是列值是否包含 0。如果我转换为字符串并检查包含 (%0%),则需要更多时间来执行.. 是否有任何简短的方法来检查 Integer柱子?谢谢..
解决方案
@SriniK您可以使用POSITION()
或LOCATE()
结合使用CONVERT()
将列值转换为字符串,然后查找字符串中是否存在字符串“0”。这两个函数都返回一个大于 0 的正数,表示字符串中子字符串的索引,如果未找到该字符串,则返回 0。
以下是如何创建一个简单的测试表来说明:
CREATE TABLE `testTable` (`id` INTEGER NOT NULL AUTO_INCREMENT, `someNum` INTEGER, PRIMARY KEY(`id`));
INSERT INTO `testTable` (`someNum`)
VALUES
(1),
(10),
(11),
(100),
(111),
(222),
(210);
这里有两个查询说明POSITION()
和LOCATE()
:
SELECT `id`,
`someNum`,
POSITION('0' IN CONVERT(`someNum`, CHAR))
FROM `testTable`
WHERE POSITION('0' IN CONVERT(`someNum`, CHAR)) > 0
;
SELECT `id`,
`someNum`,
LOCATE('0', CONVERT(`someNum`, CHAR))
FROM `testTable`
WHERE LOCATE('0', CONVERT(`someNum`, CHAR)) > 0
;
我在 dbfiddle 上对此进行了模拟,以便您更好地了解它。
如果这不能满足您的需求,或者您不理解某些内容,请发表评论并提供详细信息,我会尽我所能提供进一步的帮助。祝你好运。
推荐阅读
- clojure - java.lang.ClassNotFoundException:运行引导 repl 时的 sun.misc.Launcher
- php - 用产品列表中的自定义链接替换产品页面链接(woocommerce)
- c - 函数指针返回行为
- javascript - MongoDB、MapReduce:加入
- java - 方法 tabLayout.setupWithViewPager(viewPager) 导致应用崩溃
- python-3.x - 日期差 QuantLib
- liquid - 使用 DotLiquid 解析具有一个或多个元素的 XML 文档
- java - Maven 构建错误:java.security.InvalidAlgorithmParameterException
- oracle - 将多个 oracle 表发送到单个 kafka 主题中
- sql - 查询每个产品和零件类型的最新记录日期(包括零件类型为空)