MySql的几个函
----------------------简单记录几个函数--------------------------
第一个:position(substr in str)
- 意义:子字符串b在字符串a中出现的位置
例子:
-- 查询表中`item_name`字段中的值包含'北京'的数据行
SELECT * FROM `op_item` AS it WHERE POSITION('北京' IN it.item_name) > 0;
-- 查询表中`item_name`字段中的值包含'北京'的数据行,并展示出现的位置以及`item_name`的值
SELECT POSITION('北京' IN it.item_name) AS 位置,it.item_name FROM op_item AS it WHERE POSITION('北京' IN it.item_name);
看图总结:
- position(substr IN str)表示substr出现在str中的位置
- 这个位置起止索引为[1,str.length]
- str中每个字符代表一个索引,包含空格等等
第二个:locate(substr, str) , locate(substr, str, pos)
locate(substr, str):
和position一样,表示 substr 第一次出现在 str 中的索引。
locate(substr, str, pos)
表示从 str 中的第 pos(包含) 个位置开始往后,substr 第一次出现的位置
示例:
-- 和 position 一样,表示 a 出现在 bacdaefg 中的第一个位置
SELECT LOCATE('a', 'bacdaefg' );
-- 表示 a 在 bacdaefg 中 从第3(含)个位置起往后,第一次出现的位置
SELECT LOCATE('a', 'bacdaefg', 3);
<