SQL命令,用于搜索条件的数目可能不同的情况



所以我有一个React前端,它在mysql数据库上实现搜索操作。对于搜索操作,它可以采用4个条件(id、名称、发票、过帐(作为输入。但用户不必为所有4个条件都给出值。用户可以给出1-4个条件之间的任何值。

我无法完全理解mysql命令来执行此操作。有人能帮我用"like"运算符写这个命令吗?

Ps-假设用户只提供了用于搜索的id。应显示具有该id的所有行。如果用户同时给出了id和名称,那么应该显示与该id和名称匹配的行,依此类推。

如果搜索项是空字符串,则可以使用LIKE%编写查询以接受任何值。

SELECT * FROM myTable
WHERE
id LIKE '%search_variable_one%', 
AND name LIKE '%search_variable_two%',
AND invoice LIKE '%search_variable_three%',
AND posting LIKE '%search_variable_four%';

这样,如果任何变量为空,则查询将接受任何值
这可能会使您的搜索范围扩大,因为您将返回包含搜索字符串的所有值
您也可以按照以下编写您的WHERE

WHERE ( name LIKE 'search_variable_one' OR 'search_variable_one' = '')

因此,如果search_variable_one是一个空字符串,我们接受name的所有值,但如果它包含一个值,我们搜索确切的值。这取决于你想要如何搜索。

相关内容

最新更新