正如问题所说,我想使用LIKE
运算符,因此每当用户输入某些内容(如“M”)时,它将返回以“m”开头的所有数据库条目,而不是任何名为“M”的条目。这是我的代码
$strSymbolName = @$_REQUEST["searchSymbol"];
//searchSymbol is the variable with user Input inside
if(!empty($strSymbolName))
{ // process the form
// Establish dbserver connection and default database
$db = $objDBUtil->Open();
// Run a Query to get company name
$query = "SELECT symSymbol, symName FROM symbols " .
"WHERE symSymbol =" . $objDBUtil->DBQuotes($strSymbolName);
//Retrieves company symbol and name from database. Stores this in result
$result = $db->query($query);`
我想做的是在WHERE语句中使用LIKE运算符,所以像 -
WHERE symSymbol LIKE = " . $objDBUtil->DBQuotes($strSymbolName);
但这不起作用......我如何在这里应用LIKE运算符?
答案 0 :(得分:1)
$db = $objDBUtil->Open();
$param = $objDBUtil->DBQuotes($strSymbolName);
$query = "SELECT symSymbol, symName FROM symbols WHERE symSymbol LIKE '%$param%'";
$result = $db->query($query);
答案 1 :(得分:1)
只使用LIKE查询
$db = $objDBUtil->Open();
$query = "SELECT symSymbol, symName FROM symbols WHERE symSymbol LIKE '%$strSymbolName%'";
$result = $db->query($query);
答案 2 :(得分:0)
您需要在变量的末尾添加%
,如:
WHERE symSymbol LIKE " . $objDBUtil->DBQuotes($strSymbolName) . "%";
这将返回以变量开头的任何内容。
答案 3 :(得分:0)
如果您要搜索以“M”开头的内容,请在值后面添加%
,然后删除使用=
时不需要的LIKE
$query = "SELECT symSymbol, symName FROM symbols WHERE symSymbol LIKE ".$objDBUtil->DBQuotes($strSymbolName)."%";
有关LIKE
的详细信息,请查看here。
WHERE CustomerName LIKE'a%'||查找以“a”开头的任何值
WHERE CustomerName LIKE'%a'||查找以“a”结尾的任何值
WHERE CustomerName LIKE'%或%'||查找在任何位置具有“或”的任何值
WHERE CustomerName LIKE'_r%'||查找在第二个位置具有“r”的任何值
WHERE CustomerName LIKE'a _%_%'||查找以“a”开头并且长度至少为3个字符的任何值
WHERE ContactName LIKE'a%o'||查找以“a”开头并以“o”结尾的任何值
答案 4 :(得分:0)
在要查找的字符串后面使用%
通配符。
$query = "SELECT symSymbol, symName FROM symbols WHERE symSymbol LIKE ".$objDBUtil->DBQuotes($strSymbolName)."%";
%
和其他通配符:https://www.w3schools.com/sql/sql_wildcards.asp
以上链接摘录:
WHERE CustomerName LIKE' a%' ||查找任何开始的值 用" a"
WHERE CustomerName LIKE'%a' ||查找以...结尾的任何值 ""
WHERE CustomerName LIKE'%或%' ||查找具有"或"的任何值 在任何位置
WHERE CustomerName LIKE' _r%' ||查找具有" r"的任何值。 在第二个位置
WHERE CustomerName LIKE' a _%_%' ||查找以...开头的任何值 ""并且长度至少为3个字符
在哪里联系人名称喜欢' a%o' ||查找任何开始的值 与" a"并以" o"
结束