【问题标题】:How to create sql select by 3 level expression and statement如何通过 3 级表达式和语句创建 sql select
【发布时间】:2019-07-14 02:21:21
【问题描述】:

如何通过三级表达式和语句创建sql select

一般情况下,我的网站是基于 SQLite 数据库的,搜索结果会以 $sql = 显示

"SELECT DISTINCT * FROM amz WHERE Title LIKE \"$qq%\" OR Price LIKE \"$qq%\" GROUP BY Title";.

上面将是搜索并选择包含数据库中标题或价格列中的任何搜索关键字的查询。

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

  1. 默认搜索并显示结果为$sql = "SELECT DISTINCT * FROM amz WHERE Title LIKE \"$qq%\" OR Price LIKE \"$qq%\" GROUP BY Title";
  2. 如果在标题和价格列中找不到任何搜索结果。然后 SQL 将在 Category 列中检查为$sql = "SELECT DISTINCT * FROM amz WHERE Category LIKE \"$qq%\" GROUP BY Title";
  3. 最后,如果每列都不匹配。 SQL 结果将回显自定义消息。

我尝试用自己创造。但结果似乎只有 echo 1.) 选项。

例子:

我搜索“床上用品套装”。并且在数据库中的标题列中,产品包含此关键字而没有 (s)。

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

但是,在“类别”列中。我将每个产品的特定类别声明为类别,例如“床上用品套装”。

因此,如果搜索结果与标题或价格中的床罩套装不匹配。结果将在“类别”而不是“标题”或“价格”列中显示匹配被褥套搜索查询的产品。

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

补充:

这是查询 1 和查询 2 结果之间的屏幕截图

此屏幕截图是查询 1 结果,该结果在数据库中的 Title 列或 Price 列中搜索没有 (s) 并且喜欢或匹配的关键字。

此屏幕截图是查询 2 结果,在类别列中使用喜欢或匹配的 (s) 搜索关键字。这很奇怪,因为当我将它设置为显示结果时它变成了 Not Found。

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

谢谢

问候

【问题讨论】:

    标签: php html sql sqlite search


    【解决方案1】:

    是否需要编写一个 sql 来完成此操作?

    您基本上已经编写了伪代码:

    1. 默认将搜索并显示结果为 $sql = "SELECT DISTINCT * FROM amz WHERE Title LIKE \"$qq%\" OR Price LIKE \"$qq%\" 按标题分组";
    2. 如果在标题和价格列中找不到任何搜索结果。然后 SQL 将在 Category 列中检查为 $sql = "SELECT DISTINCT * FROM amz WHERE Category LIKE \"$qq%\" GROUP BY Title";
    3. 最后,如果每列都不匹配。 SQL 结果将回显自定义消息。

    现在开始用机器理解的语言来表达它。起点:

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

    --编辑--
    根据代码截图,您根本没有运行上述查询,而是运行了str_repl 修改的其他一些查询。这似乎把它变成了一个聚合查询(COUNT(*)),聚合查询总是返回至少一行。这可能会导致这个问题。

    【讨论】:

    • 是的。我需要按照你的解释去做。但是当我尝试时,结果回显只是查询 1。如果在与类别匹配的关键字中添加了查询作为查询 2,结果将回显为空。我注意到它只会做 1 个表达式。
    • 对不起,必须看php代码才能进一步理解。
    • 我在图片中看到了一种可能性。答案已编辑。祝你好运。
    • 那么,我应该按照您的建议编辑哪个正确的代码?我试图在互联网上找到解决方案,但没有成功编辑并使其工作。谢谢
    • 对不起,我不知道正确的代码是什么。根据您描述问题的方式和显示的代码,我可以帮助您的所有内容都已在答案中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-28
    • 1970-01-01
    • 2019-12-24
    • 2012-08-19
    • 2016-10-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多