WHERE子句,该子句包含AND子字符串条件


WHERE clause that includes an AND substring condition

在我将此条件添加到WHERE子句之前,下面显示的php查询一直运行良好(添加后查询结果为空):

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 ");

试试这个

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

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

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

LIKE '%1'

SUBSTRING(REVERSE(company_id), 1, 1)

试试这个

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

"-"从最后一个字符开始计数。而"为1"意味着你取1个字符。

使用类似Clause,将代码替换为SUBSTR(company_id,1),类似"%1"

如果compan_id是一个数字类型,比如integer,那么对它进行数字计算会快得多。使用模运算符来隔离最后一个数字。

WHERE company_id % 10 == 1