包含AND子字符串条件的WHERE子句

时间:2014-11-02 05:15:39

标签: php mysql

下面显示的php查询工作正常,直到我将此条件添加到WHERE子句中(查询在我添加后显示为空白结果):

AND SUBSTR(company_id,1)='1' 

基本上我想只包括company_id中最后一位数为' 1'的公司。我怎么能这样做?

$data = mysqli_query($mysqli,"SELECT table1.company_abbrev, table2.company_name FROM table1, table2 WHERE table1.company_id=banks.company_id AND SUBSTR(company_id,1)='1' ORDER BY table2.company_name ");

6 个答案:

答案 0 :(得分:4)

试试这个

SUBSTR(company_id,-1)='1' 

 SUBSTRING(), the position of the first character in the string from which the 
 substring  is to be extracted is reckoned as 1

有关详细信息,请参阅dev.mysql.com

答案 1 :(得分:3)

SUBSTR的位置参数为正时,它从字符串的开头开始计算。如果它是否定的,则从最后算起。所以你想要SUBSTR(company_id, -1)。您也可以使用RIGHT(company_id, 1)

答案 2 :(得分:0)

SUBSTR(company_id,1)返回整个字符串(从索引1开始,这是第一个字符) 只是做

LIKE '%1'

或者

SUBSTRING(REVERSE(company_id), 1, 1)

答案 3 :(得分:0)

试试这个

SUBSTRING('Sakila' FROM -1 FOR 1)='1'

“ - ”从最后一个字符开始计算。和“For 1”表示你占用1个字符。

答案 4 :(得分:0)

使用like clause,将代码替换为SUBSTR(company_id,1),如'%1'

答案 5 :(得分:0)

如果compan_id是一个数字类型,例如整数,那么对它进行数值计算要快得多。使用模运算符隔离最后一位数。

WHERE company_id % 10 == 1