php - 如何通过 3 级表达式和语句创建 sql select
问题描述
如何通过 3 级表达式和语句创建 sql select
通常,我的网站基于 SQLite 数据库,搜索结果会以 $sql = 显示
"SELECT DISTINCT * FROM amz WHERE Title LIKE \"$qq%\" OR Price LIKE \"$qq%\" GROUP BY Title";.
上面将是搜索和选择查询,其中包含标题或价格列中数据库中的任何搜索关键字。
但是,我需要从数据库中创建 3 个表达式和语句:
- 默认为搜索并显示结果为
$sql = "SELECT DISTINCT * FROM amz WHERE Title LIKE \"$qq%\" OR Price LIKE \"$qq%\" GROUP BY Title";
- 如果在标题和价格列中找不到任何搜索结果。然后 SQL 将在 Category 列中检查为
$sql = "SELECT DISTINCT * FROM amz WHERE Category LIKE \"$qq%\" GROUP BY Title";
- 最后,如果每列不匹配。SQL 结果将回显自定义消息。
我试着用自己创造。但结果似乎只有 echo 1.) 选项。
例子:
我搜索“床上用品套装”。并且在数据库中的标题列中,产品包含此关键字而没有(s)。
最初,将检查一个表达式是否匹配 1)。语句将从标题或价格列中选择产品。
但是,在“类别”列中。我将每个产品的特定类别声明为类别,例如“床上用品套装”。
因此,如果搜索与标题或价格中的床罩套装不匹配。结果将在“类别”而不是“标题”或“价格”列中显示匹配被褥套组搜索查询的产品。
最后,如果不是搜索查询,则每列中的任何一个都不匹配,将回显自定义消息。
额外的:
这是查询 1 和查询 2 结果之间的屏幕截图
此屏幕截图是查询 1 结果,该结果在数据库中的 Title 列或 Price 列中搜索不带 (s) 的关键字并且喜欢或匹配。
此屏幕截图是查询 2 结果,在类别列中使用喜欢或匹配的 (s) 搜索关键字。这很奇怪,因为当我将它设置为显示结果时它变成了 Not Found。
这是我的编码,我不确定它是否正确?
谢谢
问候
解决方案
是否需要编写一个 sql 来完成此操作?
您基本上已经编写了伪代码:
- 默认将搜索并显示结果为 $sql = "SELECT DISTINCT * FROM amz WHERE Title LIKE \"$qq%\" OR Price LIKE \"$qq%\" GROUP BY Title";
- 如果在标题和价格列中找不到任何搜索结果。然后 SQL 将在 Category 列中检查为 $sql = "SELECT DISTINCT * FROM amz WHERE Category LIKE \"$qq%\" GROUP BY Title";
- 最后,如果每列不匹配。SQL 结果将回显自定义消息。
现在开始用机器理解的语言来表达它。一个起点:
如果结果集不为空,则从查询 1执行并获取结果,否则显示结果
如果结果集不为空,则从查询 2 执行并获取结果,否则显示结果
--EDIT --
根据代码截图,您根本没有运行提到的查询,而是运行str_repl
. 这似乎把它变成了一个聚合查询(COUNT(*)
),聚合查询总是返回至少一行。这可能会导致这个问题。