gpt4 book ai didi

php - 从两个表 mysql php 匹配的不同请求的计数中获取结果

转载 作者:行者123 更新时间:2023-11-29 20:21:17 26 4
gpt4 key购买 nike

抱歉我的英语不好

我厌倦了问题,我想匹配 2 个表中的字段

表1

CREATE TABLE `may` (
`idKEYWORD` int(11) NOT NULL,
`faku` varchar(45) NOT NULL,
`ipk` varchar(45) NOT NULL,
`per` varchar(45) NOT NULL,
`has` varchar(45) NOT NULL,
`sem` varchar(45) NOT NULL,
`jur` varchar(45) NOT NULL
);

table 2
CREATE TABLE `matched_may` (
`idmayKEYWORD` int(11) NOT NULL,
`namemay` varchar(50) NOT NULL,
`req_faku` varchar(50) NOT NULL,
`req_jur` varchar(50) NOT NULL,
`req_ipk` varchar(50) NOT NULL,
`req_perkap` varchar(50) NOT NULL,
`req_has` varchar(50) NOT NULL,
`req_sem` varchar(50) NOT NULL

);

在像这样的php中,但我需要ini mysql,因为我有太多记录,我想使用按总匹配和使用限制排序

if($red->faku == $res->req_faku OR $res->req_faku == '') $tot[] = 1;
if($red->jur == $res->req_jur OR $res->req_jur == '') $tot[] = 1;
if($red->ipk >= $res->req_ipk OR $res->req_ipk == '') $tot[] = 1;
if($red->per >= $res->req_perkap OR $res->req_perkap == 0) $tot[] = 1;
if($red->has <= $res->req_has OR $res->req_has == 0) $tot[] = 1;
if($red->sem == $res->req_sem OR $res->req_sem == 0) $tot[] = 1;

我需要从 6 个请求中获取 4 个或更多匹配项

抱歉,我想得到像这样的结果

namemay | matched
name1 | 4
name2 | 5
name3 | 4

最佳答案

如果我猜你想做什么,你需要加入表格。然后您可以比较两个表中的列,并将匹配的数量相加。

SELECT namemay, 
(req_faku = '' OR req_faku = faku) + (req_jur = '' OR req_jur = jur)
+ (req_ipk = '' OR req_ipk <= ipk) + (req_perkap = 0 OR req_perkap = per)
+ (req_has = 0 OR req_has >= has) + (req_sem = 0 OR req_sem = sem) AS matched
FROM may
JOIN matched_may ON idKEYWORD = idmayKEYWORD
HAVING matched >= 4

比较表达式为 true 时返回 1,为 false 时返回 0,因此您可以使用加法来获取匹配的总列数。

关于php - 从两个表 mysql php 匹配的不同请求的计数中获取结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39501559/

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