mysql - 如何检查变量是否等于数据库表中某一列的一部分?

标签 mysql sql

例如,我有一个变量 $num = 123; 和另一个名为“$name=joe;”的变量,并且有一个数据库,其中包含一个名为“data”的表,该表内有两列 (num [type=varchar(255)] - name[type=varchar(255)]) 。

例如,这些查询存在于数据库中:
号码 = 123456,姓名 = 乔

如何检查前“3”个数字是否等于 $num 变量且名称是否等于变量 $name ?

我尝试过,但没有成功:
从数据中选择 * 其中 SUBSTRING(num , 0 , 3) = '123' AND name = 'joe'

最佳答案

在 MySQL 中,子字符串索引从 1 开始:

WHERE SUBSTRING(num , 1 , 3) = '123' AND name = 'joe'

但是 LEFT()LIKE 会更常用:

WHERE LEFT(num , 3) = '123' AND name = 'joe'
WHERE num = '123%' AND name = 'joe'

LIKE的优点是它可以利用索引。 。 。甚至是 (name, num) 上的一个。

关于mysql - 如何检查变量是否等于数据库表中某一列的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47042510/

相关文章:

php - 使用 PHP 显示 SQL 数据库中的一行

c# - 为什么在 C# 中将 DateTime 插入 MySQL 会出错?

mysql - 如何在 mysql 中选择具有相同值集的列?

java - 在 Derby 中创建有条件的触发器

SQL Transaction + Try-catch 还是 VB.NET Transaction + Try-catch?

php - 如何将变量从 MYSQL 结果转换为同名的 PHP 变量?

python - 请求设置 DEFAULT_INDEX_TABLESPACE

iOS 的 MySQL 包装器

sql - 统计国际域名长度抛出SQL(PostgreSQL)

mysql - 计算不同的值