2

我想在 Drupal View 查询中使用类似模式搜索。
是否可以使用上下文过滤器?
为了更清楚,假设搜索值为“测试”。

默认搜索查询在哪里:

WHERE (( (field_data_field_design_code.field_design_code_value = 'test') )
AND(( (node.status = '1')

我想要它像:

WHERE (( (field_data_field_design_code.field_design_code_value like '%"tes"%') )
AND(( (node.status = '1')

任何帮助,将不胜感激。

4

2 回答 2

3

您可以使用查看查询更改。在查询更改中,您将获得查询的对象。在此对象中,您可以注入任何您想要的内容- 查看查询更改示例

于 2015-08-25T12:19:56.287 回答
1

您可以使用 db_query 如下:

db_query('SELECT node.nid, node.title FROM {node}
INNER JOIN field_data_field_design_code ON node.nid = field_data_field_design_code.nid
WHERE field_data_field_design_code.field_design_code_value LIKE \'%%"%s"%\' AND node.status = %d', $keyword, 1);

您需要在 db_query 中使用 %% 才能使用 LIKE,http: //drupal.org/node/56400#comment-161218 。

于 2012-11-21T06:45:11.897 回答