如何:匹配搜索框中的字符串和正确的案例表数据
我有一个包含以下格式的公司名称的表:Name Name
,并且我有一个搜索框,它执行 MySQL 查询以根据搜索字符串返回数据。
假设我的表数据如下所示:
Company
----------
Name Name
Name Name
依此类推,我的查询如下所示:
$sql = "SELECT *
FROM scoreboard
WHERE codcliente = '".$q."'
OR nombre LIKE '%".$q."%'";
现在,当我尝试时,一切正常: nam
, Nam
, 名称
、名称 N
、NAM
、NAME
和 NAME N
。我的问题是为什么它不能与: name
或 name n
一起使用?显然,这可能与表数据中的混合大小写有关,但如果是这样,为什么 nam
有效?
这是 SHOW CREATE TABLE 记分板
结果:
CREATE TABLE `scoreboard` (
`id` int(11) NOT NULL DEFAULT '0',
`codcliente` text,
`nombre` text,
`ejecutivo` text,
`banca_as400` text,
`banca_real` text,
`ingresos` varchar(20) DEFAULT NULL,
`ciiu` text,
`division` text,
`actividad` text,
`riesgo_industria` text,
`riesgo_cliente` text,
`fecha` date DEFAULT NULL,
`analista` text,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
I have a table that contains company names in this format: Name Name
, and I have a search box that performs a MySQL query to return data based on the search string.
Let's say my table data looks like this:
Company
----------
Name Name
Name Name
And so on and so forth, and my query looks like this:
$sql = "SELECT *
FROM scoreboard
WHERE codcliente = '".$q."'
OR nombre LIKE '%".$q."%'";
Now, everything works fine when I try: nam
, Nam
, Name
, Name N
, NAM
, NAME
, and NAME N
. My question is why doesn't it work with: name
or name n
? Obviously it might have to do with the mixed case in the table data, but if so, why does nam
work?
Here's the SHOW CREATE TABLE scoreboard
result:
CREATE TABLE `scoreboard` (
`id` int(11) NOT NULL DEFAULT '0',
`codcliente` text,
`nombre` text,
`ejecutivo` text,
`banca_as400` text,
`banca_real` text,
`ingresos` varchar(20) DEFAULT NULL,
`ciiu` text,
`division` text,
`actividad` text,
`riesgo_industria` text,
`riesgo_cliente` text,
`fecha` date DEFAULT NULL,
`analista` text,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
为了避免大小写问题,请将它们全部以大写形式进行比较,这样您就不会受到大小写的干扰。
看起来很老套,但仍然可靠。
To avoid case problems, compare them all in uppercase so you won't be disturbed by case.
Seems hacky, but nevertheless reliable.