使用Convert或Cast(String to Integer)时出现MySQL数据库错误

时间:2012-12-27 16:47:30

标签: mysql codeigniter

在MySQL中遇到以下错误。我试过使用转换也没有运气。客户希望能够过滤客户ID类似的数据:BOB102,REB293,REC203。我将需要几乎搜索客户编号> 200,等等。

您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在“INTEGER”附近使用正确的语法)> 0)'在第6行

SELECT `orders_jobs`.* 
FROM (`orders_jobs`) 
INNER JOIN `orders_users` ON `orders_jobs`.`customer` = `orders_users`.`id` 
WHERE `orders_jobs`.`active` = 1 
AND `orders_users`.`active` = 1 
AND ( CAST(orders_users.cust_number AS INTEGER)) > 0 )

现在这些可能并不总是3个字符串,也可能是4个字符,即:BKER2938

注意:正如Edga所说,我需要使用UNSIGNED而不是整数,但由于它将全部转换为0的字符,是否可能有不同的方法?

数据示例(对于字段cust_number): MTQ32499,BGM31620,RES42935,CAM31717,CRED31672 (注意最后一个是4个字符。我相信它只有3或4个字符长)

我只需要返回有cust_number>的客户40000

1 个答案:

答案 0 :(得分:1)

你应该使用

CAST AS SIGNED

CAST AS UNSIGNED

更多信息here

- 编辑

作为一种解决方法,如果最后5个字符始终为数字

,则可以使用SUBSTRING