gpt4 book ai didi

Php 和 MySQL 搜索具有多个空格的字符串会给出空数组

转载 作者:行者123 更新时间:2023-11-30 22:00:38 26 4
gpt4 key购买 nike

所以我正在使用以下字符串进行项目代码搜索:

  • 1231231
  • 1231 123
  • 123 123

正如您在顶部看到的,第一个没有空格,第二个有,第三个中间有两个空格。这只是我的商品代码的示例。

当我在本地主机上尝试时,代码可以正常工作:

$statement = $this->pdo->prepare("SELECT * FROM records WHERE record_summary.code = ?");
$statement->execute(array($item_code));
$records = $statement->fetchAll(PDO::FETCH_ASSOC);
return $response->withStatus(200)->withJson($records);

但是,当我已经将它上传到主机时,这 2 个样本才有效。没有空格的代码(1231231)和有一个空格的代码(1231 123)。双空格代码 (123 123) 不起作用。它给出一个空数组。

我是不是漏掉了什么?任何帮助将不胜感激。

最佳答案

在这种情况下,您应该从产品代码中删除空格并搜索该值。

最简单的实现方式是删除查询中的空格:

SELECT * FROM records WHERE replace(record_summary.code, ' ', '') = ?

但是,这样的查询不能使用索引,因此在大表上可能会很慢。您可以添加生成的列或由触发器维护的普通列,其中包含不含任何空格的产品代码。这些字段可以被索引并直接从 select 语句中搜索。

您还可以考虑将产品代码字段更改为数字字段,并从现有值中删除所有空格(或将其保留为文本字段,但仍删除空格)。

关于Php 和 MySQL 搜索具有多个空格的字符串会给出空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43514722/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com