【发布时间】:2016-09-14 09:31:43
【问题描述】:
我问这个问题是因为我需要知道这个限制,因为我在我的 PHP 脚本中生成 SELECT 查询并且该查询中的 WHERE 部分是在里面生成的循环。
正是它看起来像这样
$query="SELECT field_names FROM table_name WHERE ";
$condition="metadata like \"%$uol_metadata_arr[0]%\" ";
for($i=1; $i<count($uol_metadata_arr); $i++){
$condition.=" OR metadata like \"%$uol_metadata_arr[$i]%\" ";
}
$query.=$condition;
$result=mysql_query($query);
所以,这就是为什么我需要知道我的 $query 字符串可以有多长,因为数组 $uol_metadata_arr 可以包含许多项目。
【问题讨论】:
-
我相信您主要关心的是
LIKE的大量使用(它很昂贵),而不是查询字符串的长度 本身 :) -
有什么建议可以将 LIKE 替换成别的东西吗?
-
FULLTEXT 索引可能是合适的。
-
非常感谢这个问题的所有参与者。我非常感谢您的帮助。我真的很喜欢 stackoverflow,因为它的潜在用户随时准备为您提供帮助。在对我的 sql 查询进行所有这些批评之后,我决定更改我的数据库设计以跳过使用 LIKE 语句。所以现在我不会再使用这种该死的 LIKE 了。这个社区也提出了新的设计,你可以在这里看到它 - stackoverflow.com/questions/3039077/…。谢谢。