mysql - 如何查询使用 BETWEEN 运算符在 MySql 数据库中进行文本搜索?

标签 mysql sql

我有一个 SQL 表,我使用 BETWEEN 运算符。

BETWEEN 运算符选择范围内的值。值可以是数字、文本、日期。

 stu_id name            city     pin
    1   Raj            Ranchi   123456
    2   sonu           Delhi    652345
    3   ANU           KOLKATA   879845
    4   K.K's Company   Delhi   345546
    5   J.K's Company   Delhi   123456

我有这样的查询:-

SELECT * FROM student WHERE stu_id BETWEEN 2 AND 4     //including 2 & 4

SELECT * FROM `student` WHERE name between 'A' and 'K'  //including A & not K

我的问题是为什么不包括 K。
但我也希望在搜索中使用 K。

最佳答案

不要使用between——直到你真正理解它。这只是一般性建议。 BETWEEN 包含在内,因此您的第二个查询等效于:

WHERE name >= 'A' AND
      name <= 'K'

由于相等,'K' 包含在结果集中。但是,长度超过一个字符且以 'K' 开头的名称不是 -- 例如“Ka”。

相反,要明确:

WHERE name >= 'A' AND
      name < 'L'

当然,BETWEEN 很有用。但是,它对于离散 值很有用,例如整数。带有小数、字符串和日期/时间值的数字有点危险。这就是为什么我鼓励您将逻辑表达为不等式。

关于mysql - 如何查询使用 BETWEEN 运算符在 MySql 数据库中进行文本搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57692040/

相关文章:

mysql - 如何在具有相等第二个单元格的表中插入多个值

python - 无法在 python Flask 应用程序中向 SQL 数据库添加注释

MySQL 在 .SQL 转储中的使用

python - 警告 : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near

mysql - 错误 1324 :undefined cursor in mysql

mysql - 从 MYSQL 选择 Point 数据类型

sql - 在 SQL Server 中如何透视多列

mysql - 在 1B 记录(带索引字段)上执行 %term% 之类的 mysql

php - 插入表时如何获取ID

php - MySQL从其他表中的ids中选择歌曲