我在PHP和MySQL工作
我想要冲墙。我不知道该怎么做,这让我很生气。我之前做过很多类似的事情,但这不起作用。啊。请帮忙!!!!
我正在搜索。客户将键入类似“88刹车片”的内容。我想要返回所有说“制动”所有部件的所有部件,这些部件说“垫”和所有具有88年的部件。我的问题是,年份和部件在不同的表中。
示例:
年表
ID | part_id | year |
============================
1 | 15 | 1945 |
2 | 15 | 1946 |
3 | 16 | 1984 |
4 | 18 | 1987 |
零件表
ID | part_name |
=====================
15 | brakes |
16 | hose |
17 | crank |
18 | muffler |
这个SQL Works,在拉出零件表时
SELECT DISTINCT * FROM hj_parts WHERE part_name LIKE "%brakes"
我会得到输出
ID | part_name |
=====================
15 | brakes |
所以我需要的是如果有人进入“刹车87”我想要找回第15部分(刹车)和第18部分(因为它是1987年)的所有信息。
我完全迷失了。
我已经完成了这样的事情,从某一年开始提取所有部件,而且我认为我可以调整它,而且它没有帮助。
$query = "SELECT hj_parts.* FROM hj_parts JOIN(SELECT DISTINCT part_id FROM hj_years WHERE (year BETWEEN $starter AND $ender) OR (year='all')) hj_years ON hj_parts.id = hj_years.part_id";
答案 0 :(得分:1)
我是这样做的。首先创建一个将所有内容组合在一起的查询,为方便起见,我们会将其放在视图中
create view AllParts as
SELECT Parts.*,Years.* from Parts inner join Years on Years.part_id=Parts.ID
然后你做这样的搜索
Select * from AllParts where part_name like '%brake' or year=1987
如果你的数据库很大,这可能需要一段时间。它不一定是一个完美的解决方案,但它可以为你工作。
如果您对进行关键字搜索感兴趣,或许nosql数据库会更好