比较混合列的数值和字符串值MySQL

时间:2013-08-27 05:10:16

标签: mysql comparison sql-update

您好我正在尝试根据另一列中的值进行简单的更新查询,例如

UPDATE tbl1 SET col2=1 WHERE col1 < 10

其中col1包含以下值:

1,2,3 .... 19,20,N1,N2 ... N9

但是当查询中遇到非数字字符的值时,查询就会爆炸。我试过了:

UPDATE tbl1 SET col2=1 WHERE CAST(col1 AS UNSIGNED INT) < 10

毫不奇怪,这也不起作用,但我会想到在第一个例子中检查N1&lt; 10它会忽略行而不是失败......?

我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

你可以使用 dirty REPLACE()

来完成
WHERE CAST(REPLACE(REPLACE(REPLACE(REPLACE(col1, 'M', ''), 'F', ''), 'N', ''), 'L', '') AS UNSIGNED) < 10

使用此程序,查询在性能方面并不是很好,但会满足您的需求。