Mysql语句的逻辑运算到底怎么是怎么运算的啊?
前言
这个知识点老是忘了,所以必须找机会记下来.
内容大部分取自于Mysql中字符串的逻辑运算和比较运算
非常感谢大佬的分享和总结
结论
1. 比较运算:>、<、=(==或 ===)、!=、加减乘除
- 数字和数字比较, 字符串和字符串比较, 都会按字面比较
- 数字和字符串比较, 会把字符串转成数字, 再比较。如’abc’ 变成数字0 ; ‘2abc’ 变成数字2 ;’2a3b’ 变成数字2(只看字符串开头的数字来转换)
- 数字和字符串相加减, 也会将字符串转为数字
进行比较运算,同类型的将会直接进行字面比较.若是字符串和数字比较,则字符串只需进行一次转换,变成整数即可.
2. 逻辑运算:与、或、异或、非
- 数字和数字运算, 会将数字转成boolean(true和false),非0的都是true
- 数字和字符串运算, 会先把字符串转成数字, 再把数字转成boolean.比如 ‘abc’ 先变成数字0,再变成boolean,即False;’2abc’ 先变成数字2,再变成boolean,即TRUE; ‘2a3b’ 先变成数字2,再变成boolean,即TRUE.
进行逻辑运算,数字只需一次转换,即可以直接转换为布尔值进行比较.而字符串必须经过两道程序,1.先转换成整数数字 2.再由整数数字转换为布尔值. 这样才能进行逻辑运算.
3. 字符串转数字
- 截取字符串最前面的一段数字, 包括负数, 小数点. 如果没有数字则为0