在where子句中获取字符串值 - MySQL

时间:2013-11-12 05:25:53

标签: mysql sql database

我创建了一个简单的mysql表,如this

models列采用VARCHAR(30)

但是当我执行此查询时

 SELECT *
 FROM `Vehicle_Duty_Chart`
 WHERE models = "SE3P"
 LIMIT 0 , 30

它返回此

 MySQL returned an empty result set (i.e. zero rows). (Query took 0.0004 sec)

我给出的'模型'列值的结果是一样的。对于像

这样的查询
 WHERE  ins =7000 

返回所需的输出。 我不知道我在这里做错了什么。

谢谢。

3 个答案:

答案 0 :(得分:4)

试试这个:

SELECT *
FROM `Vehicle_Duty_Chart`
WHERE TRIM(models) = "SE3P"
LIMIT 0 , 30

答案 1 :(得分:0)

尝试使用以下查询

SELECT * FROM Vehicle_Duty_Chart WHERE models LIKE  '%SE3P%' LIMIT 0 , 30

答案 2 :(得分:0)

如果您的模型字段中有一些不需要的空白,您可能需要为所有记录剪掉它。请确保您可以在所有 Vehicle_Duty_Chart 模型上丢失前导和尾随空格。

UPDATE `Vehicle_Duty_Chart` SET `models` = TRIM(`models`);

在此之后,您的字符串比较查询应该可以工作,而无需为每个查询调用 trim。

如果 models 列包含多个由逗号或其他分隔符分隔的值,您可能希望将查询更改为更像 Nikul 的答案。