MYSQL 相关语句学习

admin 2020年6月7日12:50:18评论461 views字数 705阅读2分21秒阅读模式

MYSQL 相关语句学习

1、翻了下msyql问文档,貌似没看到对select中 and or的描述;

MYSQL 相关语句学习

 

结论:

字符串全部为字母,则0
字符串第一个字符为数字,则为1
当字符串第一个字符为+-.,后面紧跟为数字时,为1

当空值null 与数字 ,则为0;与0 则为null
::null介于1与0 之间

 

2、SQL语句的短路 and 短路or:

mysql中 and即&& or即 || 本身为短路与或;

SELECT 'xxxx'
	AND (
		SELECT CASE 
				WHEN 11 = 11 THEN SLEEP(1)
				ELSE 1
			END
	)

MYSQL 相关语句学习

SELECT '111'
	AND (
		SELECT CASE 
				WHEN 11 = 11 THEN SLEEP(1)
				ELSE 1
			END
	)

 

MYSQL 相关语句学习

 

 

3、nullif(a,b):

当a=b,则返回null,当a!=b 则返回a;

类似于

CASE  WHEN a= b THEN NULL ELSE   a  END

4、ifnull(a,b):

假如b不为NULL,则 IFNULL() 的返回值为a; 否则其返回值为 b。IFNULL()的返回值是数字或是字符串,具体情况取决于其所使用的语境

 

在实战中,结合ifnull/nullif,构造比较简单的语句:

title_id=123″ OR IFNULL((nullif(length(database()),12)),SLEEP(1)) and “1”=”1

MYSQL 相关语句学习

 

5、更多可参考https://www.t00ls.net/viewthread.php?tid=55278

 

6、MySQL文档地址:

https://dev.mysql.com/doc/refman/8.0/en/control-flow-functions.html

 

 

 

 

 

 

本文来源于互联网:MYSQL 相关语句学习

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2020年6月7日12:50:18
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   MYSQL 相关语句学习http://cn-sec.com/archives/77972.html

发表评论

匿名网友 填写信息