php - 如何: Match string from search box and proper case table data

标签 php mysql sql collation

我有一个包含以下格式的公司名称的表:名称名称,并且我有一个搜索框,该搜索框执行 MySQL 查询以根据搜索字符串返回数据。

假设我的表格数据如下所示:

Company
----------
Name Name
Name Name

依此类推,我的查询如下所示:

$sql = "SELECT * 
          FROM scoreboard 
         WHERE codcliente = '".$q."' 
            OR nombre LIKE '%".$q."%'";

现在,当我尝试: namNamNameName NNAMNAMENAME N。我的问题是为什么它不能与: namename 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

最佳答案

为避免大小写问题,请将它们全部以大写形式进行比较,这样您就不会受到大小写的干扰。

$sql = "SELECT * 
          FROM scoreboard 
         WHERE upper(codcliente) = '".strtoupper($q)."' 
            OR upper(nombre) LIKE '%".strtoupper($q)."%'";

看起来很老套,但仍然可靠。

关于php - 如何: Match string from search box and proper case table data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6721125/

相关文章:

php - jQuery JSON 无法正确处理 PHP 脚本

php - 基于数据库的 session 类/库,没有 session_set_save_handler()

mysql - 如何使用连接表中的rails将csv插入mysql?

sql - Oracle 中的数字精度

javascript - Node : How to use LIKE with an input parameter in the query? 的 MSSQL

php - 为什么我的 PHP 脚本间歇性地无法通过 FTP 上传文件?

PHP MySQL 语法问题

php - 表单验证

sql - 需要使用聚合函数提高 SQL 查询的性能

php - Laravel DB 门面 BadMethodCallException