SQL查询无法按预期工作(MySQL)

时间:2013-09-15 11:29:43

标签: mysql sql wordpress

我正在尝试运行一个简单的MySQL查询,但不确定为什么它没有按预期工作。我有一个表clrs_how_to_reach,其中包含以下列

  • ID
  • STATE_NAME
  • DESTINATION_NAME
  • 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;

的rsult

http://i42.tinypic.com/2vd4tmq.png

3 个答案:

答案 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语句中的任何单个字符匹配。