我已经开始开发项目了,我需要使用 PHP 和 Mysqli 的高级搜索查询,但是我遇到了一些麻烦。请查看我的查询。
"value":"[concat(reference(resourceId('Microsoft.Web/certificates', variables('certificateName'))).Thumbprint,',',reference(resourceId('Microsoft.Web/certificates', variables('certificateName1'))).Thumbprint)]"
它的工作完美!但仍然没有匹配包含符号的条目,例如,如果我的数据库包含一行名为“颜色:红色”并且某人键入“颜色红色”,则查询将返回空,但如果我输入“颜色:红色”返回找到。那么,我该怎么办才能解决这个问题呢?
由于
答案 0 :(得分:0)
为了保持一致性,我能想到的一件事是你可以在查询中消除':'以进行匹配。请尝试以下查询:
$query = "SELECT id, name, keybox, posterid, alias, xmdb from `datasys` WHERE REPLACE(name, ':', '') LIKE '%REPLACE(".$filter.", ':', '')%' OR REPLACE(keybox, ':', '') LIKE '%REPLACE(".$filter.", ':', '')%' ORDER BY id LIMIT 0, 10";
希望这有帮助。
答案 1 :(得分:0)
将REGEXP用作: -
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write: if request.auth != null;
}
}
}
或在WHERE子句中使用REPLACE()函数: -
SELECT * FROM table WHERE columnName REGEXP "regular_expression";
答案 2 :(得分:0)
使用两个查询来查找完整和类似的记录。 如果Exact数据查询中可用的记录则无需运行类似的数据查询
<?php
//Fetches Exact Data
$query = "SELECT id, name, keybox, posterid, alias, xmdb from `datasys` WHERE name LIKE '%".$filter."%' OR keybox LIKE '%".$filter."%' ORDER BY id LIMIT 0, 10";
//If the previous query doesn't return any value, then use
//Split the the user input and then query DB
$condition="name!=''";
$filters=explode(" ",$filter);
foreach($filters as $val)
{
$condition.=" or (name LIKE '%$val%' OR keybox LIKE '%$val%')";
}
//Fetches Similar Data
$query = "SELECT id, name, keybox, posterid, alias, xmdb from `datasys` WHERE $condition ORDER BY id LIMIT 0, 10";
//-----------ENDS
?>