例如,我有一个变量$num = 123;
,另一个叫`$ name = joe;' ,并且有一个数据库包含一个名为“data”的表,在此表中有两列(num [type = varchar(255)] - name [type = varchar(255)])。
例如,这些查询存在于DB中:
num = 123456,name = joe
如何检查第一个“3”数字是否等于$ num变量且名称等于变量$ name?
我尝试了这个,但它不起作用:
SELECT * FROM data Where SUBSTRING(num , 0 , 3) = '123' AND name = 'joe'
答案 0 :(得分:1)
在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)
上的一个。
答案 1 :(得分:0)
MySQL substring()
函数是基于1的,而不是基于0的,所以这应该对你有用:
SELECT * FROM data Where SUBSTRING(num , 1 , 3) = '123' AND name = 'joe'