欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【解析:校对确定 较为复杂的一些特殊情况】,下面是详细的分享!
解析:校对确定 较为复杂的一些特殊情况
在绝大多数查询中,MySQL使用哪种校对规则进行比较是很显然的。例如,在下列情况中,校对规则明显的是“列x的列校对规则”:
|
以下为引用的内容: SELECT x FROM T ORDER BY x; |
但是,当涉及多个操作数时,可能不明确。例如:
SELECT x FROM T WHERE x='Y';
这个查询应该使用列x的 校对规则,还是字符串文字'Y'的 校对规则?
标准化SQL使用“可压缩性”规则解决这种问题。基本上,这个意思是:既然x和'Y'都有 校对规则,哪个校对规则优先?这可能比较难解决,但是以下规则适合大多数情况:
·一个外在的COLLATE子句可压缩性是0(根本不能压缩。)
·使用不同校对规则的两个字符串连接的可压缩性是1。
·列校对规则的可压缩性是2。
·“系统常数”(如USER()或VERSION()函数返回的字符串)可压缩性是3。
·文字规则的可压缩性是4。
·NULL或从NULL派生的表达式的可压缩性是 5。
上述可压缩性值是MySQL5.1当前所用的。
这样上述规则可以模糊解决:
·使用最低的可压缩性值的校对规则。
·如果两侧有相同的可压缩性,那么如果校对规则不同则发生错误。
例如:
column1='A'
使用column1的校对规则
column1='A' COLLATE x
使用'A'的校对规则
column1 COLLATE x='A' COLLATE y
错误
使用COERCIBILITY()函数确定一个字符串表达式的可压缩性:
|
以下为引用的内容: mysql> SELECT COERCIBILITY('A' COLLATE latin1_swedish_ci); |
没有系统常数或可忽略的压缩性。函数如USER()的可压缩性是2而不是3,文字的可压缩性是3而不是4。
以上所分享的是关于解析:校对确定 较为复杂的一些特殊情况,下面是编辑为你推荐的有价值的用户互动:
相关问题:数学。必修一。过程。第一题校对。第二题麻烦有解...
答:第一题单调递增, >>详细
相关问题:高三英语阅读理解 我做完了 求答案校对 谢谢
答:第六个是having done妈? >>详细
相关问题:高三英语阅读理解 我做完了 求答案校对 谢谢
答:4 has risen >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
