SQL 语句搜索字段内的所有字符
SQL statement search for all characters inside field
我有一个地址字段,地址的存储方式类似于
1111 地址信息,县
$stmt = $db->prepare('SELECT * FROM ' . Config::USER_TABLE . ' WHERE ' . Config::SEARCH_COLUMN . ' LIKE :query ORDER BY '.Config::SEARCH_COLUMN.' LIMIT ' . $start . ', ' . $items_per_page);
$search_query = $query.'%';
$stmt->bindParam(':query', $search_query, PDO::PARAM_STR);
目前我只能通过数字搜索该字段。我希望能够输入任何字母并能够进行搜索。有任何想法吗???谢谢
您附加到参数的 %
符号充当 SQL wildcard:
$search_query = $query.'%';
由于您只将它附加到参数的末尾,它只会搜索列值开头的字符串。
相反,还要在参数的开头添加一个:
$search_query = '%'.$query.'%';
这样,它会在任意位置寻找字符串。
使用 %search_criteria% 这样您就可以在两边使用通配符进行搜索
我有一个地址字段,地址的存储方式类似于 1111 地址信息,县
$stmt = $db->prepare('SELECT * FROM ' . Config::USER_TABLE . ' WHERE ' . Config::SEARCH_COLUMN . ' LIKE :query ORDER BY '.Config::SEARCH_COLUMN.' LIMIT ' . $start . ', ' . $items_per_page);
$search_query = $query.'%';
$stmt->bindParam(':query', $search_query, PDO::PARAM_STR);
目前我只能通过数字搜索该字段。我希望能够输入任何字母并能够进行搜索。有任何想法吗???谢谢
您附加到参数的 %
符号充当 SQL wildcard:
$search_query = $query.'%';
由于您只将它附加到参数的末尾,它只会搜索列值开头的字符串。
相反,还要在参数的开头添加一个:
$search_query = '%'.$query.'%';
这样,它会在任意位置寻找字符串。
使用 %search_criteria% 这样您就可以在两边使用通配符进行搜索