【发布时间】:2015-10-01 05:55:30
【问题描述】:
我正在尝试执行具有许多条件的 MySql 选择,但想对整数数据类型的列执行字符串比较。有没有办法做到这一点,而不必在 where 子句中的每个条件上将列强制转换为 varchar?
SELECT COUNT(*)
FROM tablename
WHERE CAST(col1 AS VARCHAR(10)) NOT LIKE '558%'
AND CAST(col1 AS VARCHAR(10)) NOT LIKE '566%'
AND CAST(col1 AS VARCHAR(10)) NOT LIKE '567%'
AND CAST(col1 AS VARCHAR(10)) NOT LIKE '568%'
AND CAST(col1 AS VARCHAR(10)) NOT LIKE '569%'
AND CAST(col1 AS VARCHAR(10)) NOT LIKE '579%';
在你问我为什么不做整数比较之前:我也可以只使用普通整数比较,而不是强制转换为 varchar,但是我仍然必须对每个执行数学运算,即 col1/100000 where 子句中的 item,这会导致与如何简化语句相同的问题?
【问题讨论】:
-
你可以获取
SUBSTRING(col1, 0, 3),然后使用WHERE NOT IN(. . . )