我有一个包含字符串的表。其中一些以 https://
开头,有些以 http://
开头。我想提取那些以 http://
开头的内容(不带 s
)。请注意,我不想使用 LIKE
语句,因为我处理此字符串的计划存在另一个冲突。因此,如果我在 mytable
中名为 mycol
的列中有以下项目:
https://111.com/
https://www.222.com/en-gb/
我提出这个查询:
SELECT `mytable`.`mycol`, substring_index(`mytable`.`mycol`,'http://',-1)
我仍然在结果中得到这些字符串:
https://111.com/
https://www.222.com/en-gb/
为什么?由于我的查询正在查找 http://
而不是 https://
,为什么我得到的结果以 https://
开头?在这个简单的示例中,它应该不返回任何内容,因为没有以 http://
开头的字符串
想要提取字符串
最佳答案
使用正则表达式。更简单。
从 mytable 中选择 mycol,其中 mycol REGEXP '^ http://.+ ';
关于mysql - substring_index 不采用精确的前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55663781/