1

大家

我想根据以下查询从表(价格)中检索记录。我的表是

+-----------+
| pprice    |
+-----------+
| 10 lakhs  |
| 11 lakhs  |
| 12 crores |
| 13 lakhs  |
| 15 crores |
| 16 lakhs  |
+-----------+

我正在使用以下查询

select * from price where pprice between '10 lakhs' and '20 lakhs';

但它返回以下结果

+-----------+
| pprice    |
+-----------+
| 10 lakhs  |
| 11 lakhs  |
| 12 crores |
| 13 lakhs  |
| 15 crores |
| 16 lakhs  |
+-----------+

我的查询有什么问题。请给我答复。

4

3 回答 3

1

如果您正在处理量级,例如您的示例中的 10 万,您可以执行以下操作:

select *
  from price
 where pprice between '10 lakhs' and '20 lakhs'
   and pprice like '__ lakhs';
于 2013-05-29T12:12:54.770 回答
0

当我们比较整数时,我们是在比较它们的numerical值;

即 10 > 6。

当我们比较字符串时,我们使用的是alphabetical比较;

即'10'<'6'

看这里

于 2013-05-29T11:51:13.747 回答
0

发生的情况是,您的 mySql 不知道十万和千万,并在自动转换格式时在第一个空格处拆分数字部分。然后:结果非常正确!

除了这里的设计模式(作为数据字段的一部分进行测量,规范化,......)十万和千万之间的关系是什么?mysql 怎么知道 1 千万大于 10 万(相反,我不知道这是什么)。

于 2013-05-29T11:56:26.707 回答