mysql 字符串处理

Mysql字符串字段判断是否包含某个字符串的3种方法


方法一:

SELECT * FROM users WHERE emails like "%b@email.com%";


方法二:

利用mysql 字符串函数 find_in_set();

SELECT * FROM users WHERE find_in_set('aa@email.com', emails);

这样是可以的,怎么理解呢?

mysql有很多字符串函数 find_in_set(str1,str2)函数是返回str2中str1所在的位置索引,str2必须以","分割开

注: 当str2为NO1:“3,6,13,24,33,36”,NO2:“13,33,36,39”时,判断两个数据中str2字段是否包含‘3’,该函数可完美解决

mysql > SELECT find_in_set()('3','3,6,13,24,33,36') as test;
-> 1

mysql > SELECT find_in_set()('3','13,33,36,39') as test;
-> 0

方法三:

使用locate(substr,str)函数,如果包含,返回>0的数,否则返回0 

例子:判断site表中的url是否包含'http://'子串,如果不包含则拼接在url字符串开头
update site set url =concat('http://',url) where locate('http://',url)=0 

注意mysql中字符串的拼接不能使用加号+,用concat函数


----------------------------我是分割线-----------------------


函数:startswith()

作用:判断字符串是否以指定字符或子字符串开头

一、函数说明
语法:string.startswith(str, beg=0,end=len(string))
       或string[beg:end].startswith(str)
 
参数说明:
string:  被检测的字符串
str:      指定的字符或者子字符串。(可以使用元组,会逐一匹配)
beg:    设置字符串检测的起始位置(可选)
end:    设置字符串检测的结束位置(可选)
如果存在参数 beg 和 end,则在指定范围内检查,否则在整个字符串中检查

返回值
如果检测到字符串,则返回True,否则返回False。默认空字符为True

函数解析:如果字符串string是以str开始,则返回True,否则返回False


----------------------------------------我是分割线-----------------------------

python 字符串查找有4个方法,1 find,2 index方法,3 rfind方法,4 rindex方法。

1 find()方法:查找子字符串,若找到返回从0开始的下标值,若找不到返回-1

info = 'abca'
print info.find('a')##从下标0开始,查找在字符串里第一个出现的子串,返回结果:0

info = 'abca'
print info.find('a',1)##从下标1开始,查找在字符串里第一个出现的子串:返回结果3

info = 'abca'
print info.find('333')##返回-1,查找不到返回-1

2 index()方法:

python 的index方法是在字符串里查找子串第一次出现的位置,类似字符串的find方法,不过比find方法更好的是,如果查找不到子串,会抛出异常,而不是返回-1

info = 'abca'
print info.index('a')
print info.index('33')

rfind和rindex方法用法和上面一样,只是从字符串的末尾开始查找。

--------------------------------------我是分割线-----------------------------------

endswith()方法语法:

str.endswith(suffix[, start[, end]])

参数

  • suffix -- 该参数可以是一个字符串或者是一个元素This could be a string or could also be a tuple of suffixes to look for.
  • start -- 字符串中的开始位置。
  • end -- 字符中结束位置。

返回值

如果字符串含有指定的后缀返回True,否则返回False。


MySQL提供了一些字符串处理函数,如REPEAT、LOAD_FILE和INSERT等。REPEAT函数可以将一个字符串重复多次,例如REPEAT("MySQL", 3)的结果是"MySQLMySQLMySQL"。LOAD_FILE函数可以读取文件并将其以字符串的格式返回,可以用于更新表中的blob_column字段。例如,UPDATE tbl_name SET blob_column=LOAD_FILE('/tmp/picture') WHERE id=1可以将文件内容写入表中的对应字段。INSERT函数可以将一个字符串中的部分字符替换为新的字符串。具体操作是将字符串str中从位置pos开始长度为len的子字符串替换为newstr。如果pos超过字符串长度,将返回原始字符串。如果len大于其他字符串的长度,则从位置pos开始替换。如果任何参数为null,则返回值为null[3]。以上是一些常见的MySQL字符串处理函数,可以根据具体需求使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [MySQL字符串处理](https://blog.csdn.net/weixin_42250577/article/details/120491170)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [mysql中的字符串处理函数(v5.1)](https://blog.csdn.net/Shaohuicheng/article/details/5977107)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值