mysql在角色权限上是独占的吗?
考虑一下这个名为mysql在角色权限上是独占的吗?,mysql,sql,between,Mysql,Sql,Between,考虑一下这个名为easy\u drinks的表 +------------------+ | drink_name | +------------------+ | Kiss on the Lips | | Hot Gold | | Lone Tree | | Greyhound | | Indian Summer | | Bull Frog | | Soda and It | | Blackthorn
easy\u drinks
的表
+------------------+
| drink_name |
+------------------+
| Kiss on the Lips |
| Hot Gold |
| Lone Tree |
| Greyhound |
| Indian Summer |
| Bull Frog |
| Soda and It |
| Blackthorn |
| Blue Moon |
| Oh My Gosh |
| Lime Fizz |
+------------------+
这样的疑问,
select drink_name from easy_drinks where drink_name BETWEEN 'G' and 'O';
导致
+------------------+
| drink_name |
+------------------+
| Kiss on the Lips |
| Hot Gold |
| Lone Tree |
| Greyhound |
| Indian Summer |
| Lime Fizz |
+------------------+
结果中不包括以O
开头的饮料名称。但是根据手册
expr在最小值和最大值之间
如果expr大于或等于min且expr小于或等于
到max,在返回1之间,否则返回0。
如果expr大于或等于最小值,且expr小于或等于最大值,则BEVER>返回1,否则返回0
为什么查询会给出这样的结果
我已经解释了时间戳和日期的行为。发生这种情况的原因是什么?tl;博士
不要在字符串中使用BETWEEN
其中饮料名称>='G'和饮料名称>'p'
为什么?
O有效地扩展为尾随空格以匹配列。所以
'O '
在之前
'Oh My Gosh'
所以你需要
where drink_name BETWEEN 'G' and 'OZ';
如果你喝了一种叫做“Ozymandias”的饮料,那么这就行不通了。因此:
where drink_name BETWEEN 'G' and 'OZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ';
但是,我们能安全地假设没有叫做p
的饮料和许多空格吗?这是不可理解的
select drink_name from easy_drinks
where drink_name BETWEEN 'G' and 'P';
显而易见的选择可能是使用
但这将防止在饮料名称上使用任何索引。tl;博士
不要在字符串中使用BETWEEN
其中饮料名称>='G'和饮料名称>'p'
为什么?
O有效地扩展为尾随空格以匹配列。所以
'O '
在之前
'Oh My Gosh'
所以你需要
where drink_name BETWEEN 'G' and 'OZ';
如果你喝了一种叫做“Ozymandias”的饮料,那么这就行不通了。因此:
where drink_name BETWEEN 'G' and 'OZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ';
但是,我们能安全地假设没有叫做p
的饮料和许多空格吗?这是不可理解的
select drink_name from easy_drinks
where drink_name BETWEEN 'G' and 'P';
显而易见的选择可能是使用
但这将阻止在饮料名称上使用任何索引。以下是:
编辑:
我完全忘记了LEFT(drink\u name,1)
,它是子字符串(drink\u name,1,1)
的一个方便快捷的工具,这里有:
编辑:
我完全忘记了
LEFT(drink\u name,1)
,它是子字符串(drink\u name,1,1)的一个方便的shorcut
还有其中的drink_name>='G'和drink_name
@ypercube:本来打算这么说,但被冲昏头脑了:)我不确定的是区分大小写对这些变化的影响。这将是一个排序问题。我几乎总是不区分大小写。我不确定区分大小写如何影响这些变化。这将是一个排序问题。我工作时几乎总是不区分大小写,但ft也表示“不使用任何索引”。LEFT也表示“不使用任何索引”。