Php 如何创建sql三级选择表达式和语句

Php 如何创建sql三级选择表达式和语句,php,html,sql,sqlite,search,Php,Html,Sql,Sqlite,Search,如何创建sql三级选择表达式和语句 通常,我的网站基于SQLite数据库,搜索结果将按$sql= "SELECT DISTINCT * FROM amz WHERE Title LIKE \"$qq%\" OR Price LIKE \"$qq%\" GROUP BY Title";. 上面的搜索和选择查询将包含列标题或价格中数据库中的任何搜索关键字 但是,我需要从数据库中创建3个表达式和语句,如下所示: 默认情况下,搜索结果显示为$sql=SELECT DISTINCT*FROM amz,其

如何创建sql三级选择表达式和语句

通常,我的网站基于SQLite数据库,搜索结果将按$sql=

"SELECT DISTINCT * FROM amz WHERE Title LIKE \"$qq%\" OR Price LIKE \"$qq%\" GROUP BY Title";.
上面的搜索和选择查询将包含列标题或价格中数据库中的任何搜索关键字

但是,我需要从数据库中创建3个表达式和语句,如下所示:

默认情况下,搜索结果显示为$sql=SELECT DISTINCT*FROM amz,其中标题为\$qq%\或价格为\$qq%\按标题分组; 如果无法从标题和价格列中找到任何搜索结果。然后SQL将在类别列中被签入$SQL=从amz中选择DISTINCT*,其中类别如\$qq%\GROUP BY Title; 最后,如果在每列中不匹配。SQL结果将是回显自定义消息。 我试着自己创造。但结果似乎与1相呼应。仅限选项

例如:

我搜索“被褥套”。在数据库中的列标题中,产品包含此关键字,但不包含s

最初,将检查表达式是否匹配1。一个声明可以从列标题或价格中选择产品

但是,在列类别中。我声明每种产品的具体类别,如“床上用品被套”的类别

所以,如果搜索不匹配床上用品的名称或价格设置。结果将显示符合列类别中床上用品被套搜索查询的产品,而不是标题或价格

最后,如果搜索不匹配,则每个列中的任何查询都将返回自定义消息

其他:

这是一个比较查询1和查询2结果的屏幕显示

此屏幕截图是在数据库的标题列或价格列中搜索不带s和like或匹配的关键字的查询1结果

此屏幕截图是在“类别”列中搜索关键字“喜欢”或“匹配”的查询2结果。这很奇怪,因为当我将其设置为“显示结果”时,它会变成“未找到”

这是我的代码,我不确定它是否正确

谢谢


关于

是否需要编写一个sql来完成此任务

您基本上编写了伪代码:

默认情况下,搜索结果显示为$sql=SELECT DISTINCT*,amz的标题为\$qq%\或价格为\$qq%\ 按头衔分组; 如果无法从标题和价格列中找到任何搜索结果。然后SQL将作为$SQL=SELECT DISTINCT*FROM签入类别列 amz,按标题分类,如\$qq%\群; 最后,如果在每列中不匹配。SQL结果将是回显自定义消息。 现在开始用机器能理解的语言表达它。起点:

执行并从查询1获取结果 如果结果集不为空,则显示结果 else执行并从查询2中获取结果 如果结果集不为空,则显示结果 否则显示自定义消息

-编辑-
根据代码截图,您根本没有运行上述查询,而是运行str_repl修改的其他查询。这似乎将其变形为聚合查询计数*,聚合查询始终至少返回一行。这可能会导致这个问题

对。我需要照你解释的做。但当我尝试时,结果只回显查询1。如果将查询添加到与类别匹配的关键字中作为查询2,则结果将为空。正如我所注意到的,它将只执行1个表达式。对不起,必须查看php代码才能进一步理解。我在图片中看到了一种可能性。答案已编辑。祝你好运。那么,我应该按照你的建议编辑哪个代码?我试图在互联网上找到解决方案,但未能成功地编辑并使其生效。谢谢对不起,我不知道正确的代码是什么。根据您描述问题的方式和显示的代码,我可以帮助您的一切都已在答案中。