【发布时间】:2011-11-18 21:19:47
【问题描述】:
我有一个包含列的简单位置表:location_id, country, state, city。
我用数据填充了表格并运行了以下查询:
SELECT location_id
FROM locations
WHERE country="United States"
AND state="Louisiana"
AND city="New Orleans";
即使数据存在,MySQL 也会返回一个空集。我已将其隔离到城市列。如果我在 WHERE 子句中去掉城市条件,一切都很好。如果我在 SELECT 子句中询问城市但不在 WHERE 子句中,一切都很好。可能是什么问题呢?这个查询似乎太简单了,不会造成麻烦。
城市列中的空白是否会导致这种情况?
更新!更新!
谢谢大家 - 我解决了这个问题。 我从文本文件中输入了城市列数据,每个城市名称都在一行上。这让我想知道换行符。我运行了查询(SELECT location_id FROM locations WHERE state="Louisiana" AND city="New Orleans\n")。像魅力一样工作。
我通过运行以下查询清除了列中的所有换行符:
更新locations SET city = REPLACE(REPLACE(city, '\r', ''), '\n', '');
一切正常,我学会了使用文本文件填充数据库的技巧。
感谢大家帮助我解决这个奇怪的问题。
【问题讨论】:
-
您可以选择 * 并包含有问题的结果吗?
-
你能输出你找不到的行的SQL结果吗? SELECT CONCAT('"', location_id, '"') AS location_id, CONCAT('"', country, '"') AS 国家, CONCAT('"', state, '"') AS state, CONCAT('" ', city, '"') AS city FROM locations;
-
你能添加创建表格和插入数据的脚本吗?
-
您应该发布您的解决方案作为答案并接受它,而不是编辑您的问题。这样它就会显示为已解决,其他人将能够更轻松地找到解决方案。
标签: mysql