如何在SQL语句WordPress中使用%Like%

时间:2013-08-15 作者:rocky

我使用like %wordpress中的文本%语句:

SELECT *  FROM location  WHERE name LIKE "%on" OR name LIKE "%on%"
我试过了,但没有成功:

$wpdb->get_results($wpdb -> prepare("SELECT *  FROM location  WHERE name LIKE %1s OR name LIKE %2s", \'%\'.like_escape(\'on\'), \'%\'.like_escape(\'on\').\'%\'), ARRAY_A);
请帮帮我

1 个回复
最合适的回答,由SO网友:Stephen Harris 整理而成

$wpdb->prepare() 实际上并不完全支持sprintf() 占位符。

Codex:

prepare的查询参数接受类似sprintf()的占位符。支持%s(字符串)、%d(整数)和%f(浮点)格式。

这并不完全清楚,但参数交换格式(例如。%1$d) 不支持(在任何情况下,您的语法都不正确:应该是%2$s 而不是%2s)

global $wpdb;
$wpdb->prepare(
        "SELECT *  FROM location  
         WHERE name LIKE %s OR name LIKE %s", 
         \'%\'.$wpdb->esc_like(\'on\'), 
         \'%\'.$wpdb->esc_like(\'on\').\'%\'
), ARRAY_A);
我假设“on”可能被未知值替换,否则$wpdb->prepare() 没有必要。另一方面,SQL中的第二个条件使第一个条件过时。

结束

相关推荐

Can't update old posts 3.5.2

Background: 我在一个客户网站上工作,我还没有自己建立。该网站运行得很好,当我得到它时,wp\\u页眉和wp\\u页脚丢失了,javascript文件在body标记关闭之前都链接到了。WordPress 3.5.2Issue: 旧帖子和打印更新内容时存在此问题。内容打印在foreach中,其中应显示一篇文章的附加图像。由于某种原因,旧内容被困在那里。我可以更新帖子,查看帖子的内容,但我无法在我试图显示的特定位置看到新内容。foreach生成一个滚动div,该div随图像前后移动。I\'ve tr