0

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

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 < 10 时,它会忽略该行而不是失败......?

我怎么能这样做?

4

1 回答 1

0

你可以用脏的来做 REPLACE()

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

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

于 2013-08-27T05:16:18.947 回答