根据女士的标准,应用程序可以将女士们与女士们匹配。有两个结构相同的MySQL表。个人的素质用布尔值记录。
表1:GentlemenQualities
身份证/英俊/迷人/富有/运动/时尚
彼得/ 1/1/1/0/0George / 0/1/0/1/0
玛丽正在寻找一位迷人而英俊的绅士
表2:LadiesCriteria
身份证/英俊/迷人/富有/运动/时尚
Mary / 1/1/0/0/0
以下代码在将新数据输入数据库时找到了Mary的绅士:
SELECT ID FROM GentlemenQualities WHERE Handsome = 1 AND Charming = 1
我们找到彼得...我们做了一场比赛!彼得也很富有,但这对玛丽来说并不重要。
彼得的排是从GentlemenQualities删除,而玛丽的排从LadiesCriteria删除
Janice,她想要一个时髦的绅士,她不关心他的其他品质
Janice / 0/0/0/0/1
SELECT ID FROM GentlemenQualities WHERE Fashionable = 1
这是一个空白。 Janice还没有匹配。
现在GentlemenQualities中有一个新条目
Hans / 1/0/1/0/1
如何尽可能有效地将Hans与Janice相匹配? (可能有数百名无与伦比的女士)
我正在使用php&库MySQLi。
答案 0 :(得分:1)
如果Ladies标准等于或小于Gentlemen标准,那么您应该在以下SQL查询中插入新的Gentlemen数据:
汉斯:
SELECT ID FROM LadiesCriteria
WHERE Handsome <= 1
AND Charming <= 0
AND Rich <= 1
AND Athletic <= 0
AND Fashionable <= 1
你会发现:
Janice | 0 | 0 | 0 | 0 | 1
与彼得:
SELECT ID FROM LadiesCriteria
WHERE Handsome <= 1
AND Charming <= 1
AND Rich <= 1
AND Athletic <= 0
AND Fashionable <= 0
你会发现:
Mary | 1 | 1 | 0 | 0 | 0
但不是Janice,因为她想要一位时尚绅士。
答案 1 :(得分:-1)
您正在使用(|)管道和字符串匹配解析字符串。
我建议不要使用字符串匹配,这是性能错误,而是使用整数来进行比较。创建一个整数模式,然后匹配相应的整数。