gpt4 book ai didi

SQL 字符串比较、大于和小于运算符

转载 作者:行者123 更新时间:2023-12-01 21:59:50 32 4
gpt4 key购买 nike

今天查看了一些查询示例,发现了一些WHERE条件下的字符串比较。

使用大于 (>) 和小于 (<) 符号进行比较,这是在 SQL 中比较字符串的可能方法吗?它是如何发挥作用的?按字典顺序,一个字符串比另一个字符串小?例如,球小于水?而且这个比较区分大小写?例如BALL <水,大写字符会影响这些比较吗?

我在谷歌上搜索了几个小时,但没有找到任何可以消除我这些疑问的东西。

最佳答案

比较运算符(包括 < > )“适用于”字符串值和数字。

对于 MySQL

By default, string comparisons are not case sensitive and use the current character set. The default is latin1 (cp1252 West European), which also works well for English.

当被比较的字符串的字符集排序规则区分大小写时,字符串比较将区分大小写,即字符集名称以_cs结尾。而不是_ci 。在这里重复 MySQL 引用手册中提供的所有信息确实没有意义。

MySQL 比较运算符引用:
http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html

有关 MySQL 字符集/排序规则的更多信息:
http://dev.mysql.com/doc/refman/5.5/en/charset.html

<小时/>

回答您提出的具体问题:

问:这是在 SQL 中比较字符串的可能方法吗?

答:是的,在 MySQL 和 SQL Server 中

<小时/>

问:它是如何发挥作用的?

答:比较运算符返回一个 bool 值,可以是 TRUE、FALSE 或 NULL。

<小时/>

问:按字典顺序,一个字符串比另一个字符串小?例如,球小于水?

A:是的,因为在字符集排序规则中“b”位于“w”之前,所以表达式

  'ball' < 'water'

将返回 TRUE。 (这取决于字符集排序规则

<小时/>

问:这个比较区分大小写吗?

答:特定比较是否区分大小写取决于数据库服务器;默认情况下,SQL Server 和 MySQL 都不区分大小写。

在 MySQL 中,可以通过指定区分大小写的字符集排序规则来进行字符串比较(字符集名称将以 _cs 而不是 _ci 结尾)

<小时/>

问:例如BALL <水,大写字符会影响这些比较吗?

A:默认情况下,在 SQL Server 和 MySQL 中,表达式

  'BALL' < 'water'

将返回 TRUE。

关于SQL 字符串比较、大于和小于运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26080187/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com