所以我对SQL(以及一般的脚本/编码)都很陌生,这是本书中的一个例子,不幸的是,他们认为对这个查询没有任何疑问,忽略了扩大'>'在查询结束附近
以下是有问题的查询:
SELECT *
FROM easy_drinks
WHERE main > 'soda';
这是一个包含几个查询的pastebin,希望能提供所需的视角:http://pastebin.com/xfJQsBvU
DESC的粘贴easy_drinks:http://pastebin.com/LZZPhk6Z
我只是对'>'的看法感到困惑在查询结束附近工作,因为main存储为VARCHAR,'soda'绝对不是可以与另一个整数进行比较的整数。然而,正如您在第一个pastebin中看到的那样,查询成功完成。为什么MySQL没有返回错误,使用'>'的不同查询背后的模式是什么?和'<'?
答案 0 :(得分:7)
它可能正在进行lexicographical ordering。
它类似于你或我在字典中订购单词的方式。但请注意,may not handle numbers the way you'd expect。
答案 1 :(得分:0)
您经常会找到>关于字符串的关系,主要用于字母顺序,但当然它是依赖于实现的,并且可以是不同的,特别是对于不同的语言/编码或大写和小写的问题。