-1

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

  • ID
  • 州名
  • 目的地名称
  • 如何到达

上表只有一个我添加用于测试目的的条目。当我运行以下查询时

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

两个列都有我在查询中使用的值时没有显示任何结果

不知道为什么会这样。作为附加说明,我使用的是 wordpress,但我什至在 SQL 控制台上尝试了这些查询。

编辑

当我更改 state_name='himachal-pradesh'为 时state_name='himachalpradesh',我能够得到结果,但我无法更改它,因为应用程序在整个应用程序中都使用此约定。

这是查询的结果select * from clrs_how_to_reach where id=1;

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

4

3 回答 3

0

我认为它的存储方式不像:

'himachal-pradesh'

但是作为:

'himachal–pradesh'

它们可能接缝相同,但实际上并非如此。检查字符代码!

无论如何,很容易将这两种情况结合起来而不会出太多汗:

SELECT count(*) FROM clrs_how_to_reach 
WHERE state_name LIKE 'himachal_pradesh' AND destination_name='dalhousie';

请记住,您可以使用“_”作为 MySQL LIKE 语句中的任何单个字符匹配。

于 2013-09-15T15:00:35.447 回答
0

使用以下查询

select count(*) as result from clrs_how_to_reach where state_name='himachal-pradesh' and destination_name='dalhousie'
于 2013-09-15T11:33:06.323 回答
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

正如您所说,问题在于列排序规则设置

于 2013-09-15T11:35:13.660 回答