在我将此条件添加到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