gpt4 book ai didi

mysql - Like 表达式对 mysql 不起作用

转载 作者:行者123 更新时间:2023-11-28 23:28:50 24 4
gpt4 key购买 nike

我的 MySQL 查询有问题。当我尝试使用查询的列之一过滤查询时,它说没有行。

SELECT `Voucher`.`id`, `Voucher`.`name`, `Voucher`.`batch`, `Voucher`.`status`, `Voucher`.`perc_time_used`, `Voucher`.`perc_data_used`, 
`Voucher`.`last_accept_time`, `Voucher`.`last_reject_time`, `Voucher`.`last_accept_nas`, `Voucher`.`last_reject_nas`, `Voucher`.`last_reject_message`,
`Voucher`.`user_id`, `Voucher`.`created`, `Voucher`. `modified`, `Voucher`.`extra_name`, `Voucher`.`extra_value`, `Voucher`.`password`,
`Voucher`.`realm`, `Voucher`.`realm_id`, `Voucher`.`profile`, `Voucher`.`profile_id`, `Voucher`.`expire`, `Voucher`.`time_valid`, `Voucher`.`data_used`,
`Voucher`.`data_cap`, `Voucher`.`time_used`, `Voucher`.`time_cap`,
(SELECT voucher_values.value FROM voucher_values WHERE voucher_values.attribute = 'gender' AND voucher_values.voucher_id = `Voucher`.`id`) AS `gender`,
(SELECT voucher_values.value FROM voucher_values WHERE voucher_values.attribute = 'residence' AND voucher_values.voucher_id = `Voucher`.`id`) AS `residence`,
(SELECT voucher_values.value FROM voucher_values WHERE voucher_values.attribute = 'age' AND voucher_values.voucher_id = `Voucher`.`id`) AS `age`,
(SELECT voucher_values.value FROM voucher_values WHERE voucher_values.attribute = 'nationality' AND voucher_values.voucher_id = `Voucher`.`id`) AS `nationality`,
(SELECT voucher_values.value FROM voucher_values WHERE voucher_values.attribute = 'email' AND voucher_values.voucher_id = `Voucher`.`id`) AS `email`,
(SELECT voucher_values.value FROM voucher_values WHERE voucher_values.attribute = 'facebookid' AND voucher_values.voucher_id = `Voucher`.`id`) AS `facebookid`,
(SELECT voucher_values.value FROM voucher_values WHERE voucher_values.attribute = 'googleid' AND voucher_values.voucher_id = `Voucher`.`id`) AS `googleid`,
(SELECT voucher_values.value FROM voucher_values WHERE voucher_values.attribute = 'interests' AND voucher_values.voucher_id = `Voucher`.`id`) AS `interests`,
`User`.`id`, `User`.`username`, `User`.`password`, `User`.`token`, `User`.`name`, `User`.`surname`, `User`.`address`, `User`.`phone`, `User.email`,
`User`.`active`, `User`.`monitor`, `User`.`country_id`, `User`.`group_id`, `User`.`language_id`, `User`.`parent_id`, `User`.`lft`, `User`.`rght`,
`User`.`created`, `User`.`modified`
FROM `rd`.`vouchers` AS `Voucher` LEFT JOIN `rd`.`users` AS `User` ON (`Voucher`.`user_id` = `User`.`id`)
WHERE `User`.`id` IN (58,59) AND `email` LIKE '%%' ORDER BY Voucher.name DESC LIMIT 100 OFFSET 0

我的问题出在 WHERE 子句上 - 更具体地说是在 email LIKE '%%' 上。当我尝试在百分比之间添加一些内容时,查询不返回任何行。我知道我输入的字符在那个字段上。

最佳答案

我不知道这是否是导致问题的原因,但是当 LEFT JOINing 时,LEFT JOIN 右表上的条件应该仅在ON 子句。

FROM rd.vouchers AS Voucher
LEFT JOIN rd.users AS User
ON (Voucher.user_id = User.id AND User.id IN (58,59))
WHERE email LIKE '%String%'
ORDER BY Voucher.name DESC
LIMIT 100 OFFSET 0

如果 Email 列属于 users 表,那就是问题所在,您还应该将它添加到 ON 子句中:

ON (Voucher.user_id = User.id
AND User.id IN (58,59)
AND email LIKE '%String%')
ORDER BY Voucher.name DESC
LIMIT 100 OFFSET 0

关于mysql - Like 表达式对 mysql 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38125440/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com