反向LIKE函数以查找搜索项的子字符串

时间:2013-05-23 04:55:14

标签: php mysql sql-like

我有一个页面,该功能用于搜索数据。

我的表格列中有这样的内容:

form_no | status
1       | WW025687732
2       | QR1233545AB

GET功能:

$status = $_GET['status_sheet'];

我使用这样的SQL:

$query = mysql_query("SELECT * FROM t_test WHERE status LIKE '$status%'");

当我在WW025687732中搜索更多文本或数字时,如WW025687732-1224AS。 它不能运作。如果状态包含WW025687732以及如果我添加更多类似WW025687732-1224AS的文本,它将显示。

3 个答案:

答案 0 :(得分:0)

尝试

$query = mysql_query("SELECT * FROM t_test WHERE status LIKE '%$status%'");

请参阅此LINK

长文本需要全文搜索

答案 1 :(得分:0)

尝试

$query = mysqli_query("SELECT * FROM t_test WHERE status = SUBSTRING('$status', LENGTH(status));");

答案 2 :(得分:0)

我认为发生的事情是变量赋值没有正确发生且mysql正在获取SELECT * FROM t_test WHERE status LIKE '%'

仔细检查您的表单方法,确保它实际上是get,并且搜索字段的变量名称为status_sheet

在将状态发送到查询之前,确保您的状态至少包含一个字符也是一个好主意:

if (strlen($status) > 0){
    echo "Error you must specify something for this to work.";
} else { 
    $query = mysql_query("SELECT * FROM t_test WHERE status LIKE '$status%'");
    .... show results and whatever ....
}