gpt4 book ai didi

mysql - SQLbuilder LIKE 参数带 %

转载 作者:行者123 更新时间:2023-11-30 00:14:42 25 4
gpt4 key购买 nike

我正在尝试使用 LIKE 在我的数据库中搜索,现在构建器运行良好,除了一件事:我希望在每个参数的前面和后面都有一个 % ,但是构建器的工作方式是,它会在每个参数的前面和后面放置一个 ' 。被执行。所以我无法手动添加它们

有办法做到这一点吗?

这是查询:

$queryBuilder = $this->db->createQueryBuilder();
$queryBuilder
->select('t.id', 't.status', 't.title', 't.price', 'u.username')
->from('tools', 't')
->innerJoin('t', 'key_for_tools', 'kft', 'kft.tools_id = t.id')
->innerJoin('t', 'keywords', 'k', 'kft.key_id = k.id')
->innerJoin('t', 'users', 'u', 't.user_id = u.id');

for($i=0; $i < sizeof($tags); $i++){
$queryBuilder->andWhere('k.key LIKE %' . $queryBuilder->createPositionalParameter($tags[$i]) . '%');
}
$result = $this->db->fetchAll($queryBuilder->getSql(),$tags);

但这会生成一个类似以下的字符串:

从工具中选择 t.id、t.status、t.title、t.price、u.username t INNER JOIN key_for_tools kft ON kft.tools_id = t.id INNER JOIN 关键字 k ON kft.key_id = k.id INNER JOIN users u ON t.user_id = u.id WHERE (k.key LIKE %'tag'%) 但我想要 '< 之间的 %/

如果有人知道怎么做

最佳答案

正如@VMAI所说,这解决了我的问题

    for($i=0; $i < sizeof($tags); $i++){
$queryBuilder->andWhere($queryBuilder->expr()->like('k.key', $queryBuilder->expr()->literal('%' . $tags[$i] . '%')));
}

关于mysql - SQLbuilder LIKE 参数带 %,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23758003/

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