Mysql中查询以什么字符串开头的数据

在开发过程中,有时候需要查询出以某个字符串开头的所有数据。下面来给大家介绍介绍:

知识点:

以某个字符串开头或不以某个字符串开头

方式1用like

这里查询以1101开头

Mysql中查询以什么字符串开头的数据_第1张图片

这里查询不以1101开头

Mysql中查询以什么字符串开头的数据_第2张图片

方式2用left

这里查询以1101开头

Mysql中查询以什么字符串开头的数据_第3张图片

4为字符串长度(‘1101‘的长度)

这里查询不以1101开头

Mysql中查询以什么字符串开头的数据_第4张图片

这里肯定有人问了:要是查询的是前台传来的参数,不知道长度,怎么办?

mysql中有计算字符串长度的方法

方法1: length(str)

Mysql中查询以什么字符串开头的数据_第5张图片

方法2:CHAR_LENGTH(str)

Mysql中查询以什么字符串开头的数据_第6张图片

改进后:

Mysql中查询以什么字符串开头的数据_第7张图片

注:这俩虽然都能查询出字符串长度,但对中文查询的结果是不一样的。SELECT LENGTH('我说你');方法是一个中文对3个;SELECT CHAR_LENGTH('我说你');方法是一个中文对1个。

Mysql中查询以什么字符串开头的数据_第8张图片
Mysql中查询以什么字符串开头的数据_第9张图片

如果查询的为用逗号分割的字符串列表

如图这种数据

可以使用

FIND_IN_SET方法。

语法:FIND_IN_SET(needle, haystack);

needle:需要查找的字符串

haystack:以逗号分割的字符串数据

Mysql中查询以什么字符串开头的数据_第10张图片

改进

Mysql中查询以什么字符串开头的数据_第11张图片

你可能感兴趣的:(java,mysql,sql)