我有一个包含这种格式的公司名称的表:Name Name
,我有一个搜索框,执行MySQL查询以根据搜索字符串返回数据。
假设我的表格数据如下:
Company
----------
Name Name
Name Name
依此类推,我的查询如下:
$sql = "SELECT *
FROM scoreboard
WHERE codcliente = '".$q."'
OR nombre LIKE '%".$q."%'";
现在,我尝试时一切正常:nam
,Nam
,Name
,Name N
,NAM
,NAME
和{ {1}}。我的问题是为什么它不适用于:NAME N
或name
?显然它可能与表数据中的混合大小写有关,但如果是这样,为什么name n
有效?
以下是nam
结果:
SHOW CREATE TABLE scoreboard
答案 0 :(得分:1)
为了避免出现问题,请将它们全部用大写字母进行比较,这样就不会受到案例的干扰。
$sql = "SELECT *
FROM scoreboard
WHERE upper(codcliente) = '".strtoupper($q)."'
OR upper(nombre) LIKE '%".strtoupper($q)."%'";
看似hacky,但仍然可靠。