0

我正在尝试使用 PDO LIKE 条件从数据库中获取相应的值。现在问题是数据库中的一些值以大写开头。我正在尝试使用 UPPERCASED 列值查询数据库。

如果我使用此代码:

$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $stmt = $connection->prepare('SELECT * FROM ingredient WHERE name LIKE ?');
    $query = '%'.$queryEntered.'%';
    $stmt -> execute(array($query));

我确实得到了结果,我更希望有一些类似的东西

$query = $queryEntered.'%';
    $stmt -> execute(array($query));

我似乎无法让列中的数据大写,所以永远不会匹配。一直在寻找。你能帮忙的话,我会很高兴。

4

1 回答 1

1

这取决于您使用的字符集和排序规则。大多数 MySQL 安装默认为 latin1_swedish_ci,它具有不区分大小写的字符串比较。您可以尝试强制进行区分大小写的比较。

'SELECT * FROM ingredient WHERE name COLLATE latin1_general_cs LIKE ?'

另见此处:http ://dev.mysql.com/doc/refman/5.6/en/case-sensitive.html

于 2013-04-03T22:04:48.757 回答