[英]Using results from one sql query to get results from another - where to put moveNext
[英]get weird results from SQL query using “%”
我試圖使用SQL從數據庫中獲取結果,但是結果與我用作輸入的內容不一致。 我總是從那些同時包含整數和字符的人那里得到結果。 例如,如果我搜索“ liu”,則會得到“ 2LK020”的結果。 我既無法使用整數搜索也無法獲得正確的結果...我使用:
$result = queryDatabase(
"SELECT course_tag, course_name FROM course WHERE course_tag OR course_name LIKE ?",
array(1 => '%' .$parameters[0]. '%')
使用“%”有問題嗎? 還是為什么我會得到這個奇怪的答案?
閱讀此: http : //dev.mysql.com/doc/refman/5.7/en/operator-precedence.html
你做的相當於
WHERE course_tag OR (course_name LIKE ?)
涉及到
WHERE true/false OR true/false
只要course_tag
不是空字符串,null或其他“ falsey”值,它幾乎總是會評估為true
值,並使整個WHERE
子句評估為true
。
您不能針對單個LIKE
值測試多個字段。 那根本行不通。 您需要分別測試每個:
WHERE (course_tag LIKE ?) OR (course_name LIKE ?)
但是,由於您要進行%...%
雙通配符搜索,因此您可以通過
WHERE CONCAT(course_tag, course_name) LIKE ?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.