我有一个名为records的表,其中有几列,其中一列是代表电话号码的fromphone。我可以运行此查询以查看不同的电话号码:
SELECT DISTINCT fromphone
FROM records
它显示了不同的电话号码。
但是,如果我运行此查询:
SELECT *
FROM records
WHERE fromphone = '123-456-7890'
其中fromphone是表格中的电话号码,不会返回任何结果。
答案 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必须进行全表扫描。