我正在尝试运行一个简单的MySQL查询,但不确定为什么它没有按预期工作。我有一个表clrs_how_to_reach
,其中包含以下列
上表只有一个我为测试目的添加的条目。 当我运行以下查询
时SELECT * FROM clrs_how_to_reach WHERE id=1
我收到的结果和查询显示它获取了1个结果,但是当我运行以下查询时:
SELECT count(*) FROM clrs_how_to_reach
WHERE state_name='himachal-pradesh' AND destination_name='dalhousie'
even select * from rest of query
没有显示任何结果,而两个coloum都有我在查询中使用的值
不确定为什么会这样。 另外请注意,我使用的是wordpress,但我甚至在SQL控制台上尝试了这些查询。
修改
当我将state_name='himachal-pradesh'
更改为state_name='himachalpradesh'
时,我能够获得结果,但我无法更改,因为应用程序在整个应用程序中使用此约定。
这是查询select * from clrs_how_to_reach where id=1;
答案 0 :(得分:0)
使用以下查询
select count(*) as result from clrs_how_to_reach where state_name='himachal-pradesh' and destination_name='dalhousie'
答案 1 :(得分:0)
您可能想尝试这样: -
select count(*) as Column1 from clrs_how_to_reach
where state_name ='himachalpradesh' and destination_name = 'dalhousie'
请检查himachal-pradesh
列中是否有(-)
修改: - 强>
您可能已将himachalpradesh
存储在示例数据中,但在实际数据中,您的值可能为himachal-pradesh
。否则,您可能无法获得himachalpradesh
值的值。
添加了 SQLFIDDLE
正如您所说,问题在于列整理设置
答案 2 :(得分:0)
我认为它存储不像:
'himachal-pradesh'
但是:
'himachal–pradesh'
它们可能接缝相同,但实际上它们不是。检查字符代码!
无论如何,很容易将这两种情况结合起来而不会出汗:
SELECT count(*) FROM clrs_how_to_reach
WHERE state_name LIKE 'himachal_pradesh' AND destination_name='dalhousie';
请记住,您可以使用“_”作为MySQL LIKE语句中的任何单个字符匹配。