我有查询哪个搜索数据库,也就是
$linkcdb = $wpdb->query($wpdb->prepare("SELECT wp_link_factor WHERE wp_link_chk = %s", $u));其中$u = is nay link;为例;
$u = www.kaka.com
$u = popopo.com
$u = http://jajaja.com我有一个数据库,其中www, http and .com位于表的列中,列名为wp_link_chk。
现在我面临的问题是,用户输入是一个像www.example.com这样的完整链接,而数据库中只有.com, http and www。
我想要的是如何比较我的完整句子,看看这个句子中是否有针头http,或者www或.com?
这样做的函数是stristr($u,'http'),所以我将如何在数据库中使用这个功能,我的意思是我将如何检查wp_link_chk的列作为一根针来代替我的句子?
发布于 2015-01-09 12:51:05
使用MySQL函数LOCATE,您可以使用以下内容
... WHERE LOCATE( wp_link_chk, :userInput ) > 0编辑:请注意,这种方法当然可以返回多个记录,例如,如果"http://www.example.com"与"http"、"www"和".com"匹配。
发布于 2015-01-09 12:45:13
最接近的匹配方法是使用mysql类函数。
实际的声明应该类似于
SELECT wp_link_factor WHERE wp_link_chk LIKE %www.example.com% 但是,由于您使用wordpress准备的语句,请按如下方式使用它:
$linkcdb = $wpdb->query($wpdb->prepare("SELECT wp_link_factor WHERE wp_link_chk LIKE %s", '%' . $u . '%'));--更新--
为了完成,可以使用REGEXP匹配来使用以下查询选择wp_link_chk列中包含http、www或.com的行。
SELECT wp_link_factor WHERE wp_link_chk REGEXP '(http)|(www)|(\.com)'https://stackoverflow.com/questions/27860697
复制相似问题