繁体   English   中英

匹配wp_usermeta中的多个值以从wp_users表中获取电子邮件

[英]Matching multiple values in wp_usermeta to get email from wp_users table

我创建了一个简单的html表单,将两个值(车牌号和状态)提交给我编写的php脚本。 我正在使用wordpress。 我希望脚本在wp_usermeta表中查找用户,并选择具有meta_value条目的用户ID,该条目与在表单中提交的license_plate和state都匹配。 然后,我希望脚本在wp_users表中查找该用户的电子邮件。 这是我的代码:

$license_plate = $_POST['license_plate'];
$state = $_POST['state'];

$userInfo = $wpdb->get_row  ( $wpdb->prepare ("
    SELECT user_id, user_email
    FROM $wpdb->usermeta um
    INNER JOIN $wpdb->users u ON (u.ID=um.user_id)
    WHERE meta_value = %s", //OR meta_value !!
    $license_plate
));

到目前为止,我可以基于license_plate meta_value获取user_email,但是我想确保相关的user_id也共享相同的状态值,因为我的数据库中有几个用户具有相同的牌照#但状态不同。

如何修改此查询以满足这两个条件? 还是我写一个额外的查询?

试试这个查询

$wpdb->prepare ("SELECT u.id, u.user_email
FROM $wpdb->usermeta plate, $wpdb->usermeta state, $wpdb->users u
WHERE plate.user_id = state.user_id
AND plate.meta_key = 'license_plate'
AND state.meta_key = 'state'
AND u.ID = plate.user_id
AND plate.meta_value = %s
AND state.meta_value = %s", $license_plate, $state)

这是相同的SQLFiddle: http ://sqlfiddle.com/#!2/cbc58/3

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM