mysql查询没有给出正确的结果

时间:2010-09-01 18:31:29

标签: sql mysql

我有一个名为records的表,其中有几列,其中一列是代表电话号码的fromphone。我可以运行此查询以查看不同的电话号码:

SELECT DISTINCT fromphone
FROM records

它显示了不同的电话号码。

但是,如果我运行此查询:

SELECT *
FROM records
WHERE fromphone = '123-456-7890'

其中fromphone是表格中的电话号码,不会返回任何结果。

3 个答案:

答案 0 :(得分:1)

最可能的情况是确切的字符串'123-456-7890'不在该列中。尝试使用LIKE代替=,以防有一些额外的空格或导致等于不与电话号码匹配的内容。

答案 1 :(得分:0)

您确定数据库表中的电话号码为123-456-7890吗?可能还有一些前导空格或尾随空格。

尝试使用LIKE%%运算符,请执行以下操作:

SELECT *
FROM records
WHERE fromphone LIKE '%123-456-7890%'

答案 2 :(得分:0)

如果你有前导/尾随空格,你可以使用TRIM()

SELECT *
FROM records
WHERE TRIM(fromphone) = '123-456-7890'

如果在记录表中有很多行,则将LIKE与前导和尾随通配符一起使用可能会非常慢,因为当你这样做时,MySQL必须进行全表扫描。