环境:10.4.26-MariaDB
1、sleep
sleep(n)
- 执行一遍函数,延时n秒
- 如果在where条件中多次需要执行sleep,则多次延时
- sleep函数返回为false,不论是n是否为0
- 假设设置sleep(100),数据库如实进行了延时
- n可以设定为小数,最小是0.001,但是这并不是绝对准确
2、updatexml
updatexml(v1,v2,v3)
- 第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc
- 第二个参数:XPath_string (Xpath格式的字符串) ,xpath即xml路径的语法
- 第三个参数:new_value,String格式,替换查找到的符合条件的数据
第一个和第二个参数都可以执行函数。
(1)
updatexml(1,concat(0x7e,version()),0)
- 第二个参数一般通过concat函数拼接字符前缀~,使其不满足xpath语法,进行报错,输出第二个参数的函数的结果。
- 此时第一个参数和第三个参数可以是任意值,字符串或者数值,不执行,不影响
- 此时整个sql语句是报错退出,不考虑updatexml函数的返回,也不考虑其他结构
(2)
updatexml(version(),'abc',0)
- 第二个参数使满足xpath语法,则执行第一个参数
- 第一个参数执行的结果作为updatexml函数的返回
3、extractvalue
extractvalue(v1,v2)
- v1参数无影响
- v2参数如果不符合xpath语法,会报错
4、不存在
测试这些函数,都报不存在:
st_pointfromgeohash((),1)
gtid_subset()和gtid_subtract()
st_longfromgeohash()
st_latfromgeohash()
标签:xpath,函数,补充,mysql,sleep,updatexml,参数,报错 From: https://www.cnblogs.com/wd404/p/17332115.html