如何編寫SQL查詢功能在Drupal,如何使用查詢功能在Drupal
SELECT title FROM { node } WHERE type='%s'
我想補充LIKE條件在
SELECT title FROM { node } WHERE type='%s' AND LIKE '%S%'
我想我writtern錯像查詢formnat ,可以重寫並告訴我,
如何編寫SQL查詢功能在Drupal,如何使用查詢功能在Drupal
SELECT title FROM { node } WHERE type='%s'
我想補充LIKE條件在
SELECT title FROM { node } WHERE type='%s' AND LIKE '%S%'
我想我writtern錯像查詢formnat ,可以重寫並告訴我,
只需使用%逃脫。
$result = db_query('SELECT title FROM {node} WHERE type = "%s" AND title LIKE "%%%s%%"', 'type', 'title');
while ($row = db_fetch_object($result)) {
// do stuff with the data
}
節點類型不需要轉義。
好吧,所以你想LIKE
運營商參考title
列。使用此查詢:
$sql = "SELECT title FROM node WHERE type='%s' AND title LIKE '%S%'";
$type = "type to use in query";
$title = "title to use in query";
$result = db_result(db_query($sql, $type, $title));
這是因爲LIKE
操作符需要指定列名稱。否則,您的數據庫不知道您想要執行比較的值。見here。
drupal_query替換%%到%和%s到字符串值
所以你的代碼會
$sql = "SELECT title FROM node WHERE type='%%%s' AND title LIKE '%%%S%%'";
$type = "type to use in query";
$title = "title to use in query";
$result = db_result(db_query($sql, $type, $title));
這裏是如何在一個動態查詢(Drupal的7只)LIKE用一個例子:
$query = db_select('node', 'n')
->fields('n', array('title'))
->condition('type', 'my_type')
->condition('title', '%' . db_like(search_string) . '%', 'LIKE');
$result = $query->execute()->fetchCol();
db_like()
用來逃脫,在LIKE模式工作作爲通配符的字符。
這是錯誤的,有人問了關於Drupal 6的問題。你提供了一個Drupal 7的答案 – generalconsensus 2015-09-21 23:27:44
好點 - 我編輯了我的答案,以清楚地表明這隻適用於Drupal 7.仍然可以證明對某人有用... – 2015-09-21 23:35:39
這就是萬分感謝! – generalconsensus 2015-09-22 00:07:41
我想要運營商的標題字段 – Bharanikumar 2010-11-02 17:01:59
我要求Drupal – Bharanikumar 2010-11-02 17:03:00
這是正確的,但你必須添加變量來替代那些佔位符。所以, $ sql = db_query(「SELECT title FROM node WHERE type ='%s'AND title LIKE'%S%'」,$ type,$ title); $ result = db_result($ sql); 其中$ type和$ title等於您要過濾的內容。你可能已經知道這一點;我只是想說明這一點。 – theunraveler 2010-11-02 17:18:08