簡體   English   中英

SELECT * FROM表WHERE列LIKE%?%

[英]SELECT * FROM Table WHERE Column LIKE %?%

根據這里的信息MySQL查詢字符串包含嘗試創建pdo查詢?

實驗如下

SELECT * FROM Table WHERE Column LIKE %?%

SELECT * FROM Table WHERE Column LIKE ?%

SELECT * FROM Table WHERE Column LIKE %?

什么都行不通。 得到錯誤

語法錯誤或訪問沖突:1064 SQL語法中有錯誤; 查看與您的MySQL服務器版本對應的手冊,以便在'%...附近使用正確的語法

嘗試SELECT * FROM Table WHERE Column LIKE ? 但這不適用於contains

目標是獲取查詢SELECT * FROM Table WHERE Column contains ?

什么是正確的pdo contains位置占位符的聲明( ? )?

通過PHP連接字符串中的值來嘗試這個,

$value = "valueHere";
$passThis = "%" . $value . "%";
// other pdo codes...
$stmt = $dbh->prepare("SELECT * FROM Table WHERE Column LIKE ?");
$stmt->bindParam(1, $passThis);
// other pdo codes...

之后添加引號。 例如: - like '%?%'

即:

SELECT * FROM table_name WHERE column_name like '%field_name%';

我認為通配符應該在單引號內,比如;

SELECT * FROM Table WHERE Column LIKE '%?%';

這將返回包含特定列字段中任何位置給出的字符串的任何記錄

以'ber'開頭的列數據,例如

SELECT * FROM Table WHERE Column LIKE 'ber%';

希望這可以幫助

在將參數傳遞給查詢之前,將%字符放在參數之前和之后

SELECT * FROM Table WHERE Column LIKE '%' + ? + '%'

SELECT * FROM Table WHERE Column LIKE ? + '%'

SELECT * FROM Table WHERE Column LIKE '%' + ?

雖然如果這會失敗? 為null,因為連接將產生null。 你可以使用coalesce

SELECT * FROM Table WHERE Column LIKE '%' + Coalesce(?,'') + '%'

SELECT * FROM Table WHERE Column LIKE Coalesce(?,'') + '%'

SELECT * FROM Table WHERE Column LIKE '%' + Coalesce(?,'')

如果您想使用預准備語句,請查看http://php.net/manual/de/pdo.prepared-statements.php

SELECT * FROM REGISTRY where name LIKE '%?%'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM