因此,我有一个在mysql数据库上实现搜索操作的React前端。而对于搜索操作,它可以以4个条件(id,名称,发票,张贴)作为输入。但是,用户需要为所有4种条件提供值是不必要的。用户可以在1-4条件之间的任何地方给出值。
我无法完全理解mysql命令来执行此操作。有人能帮我用'like‘操作符写这个命令吗?
假设用户只为搜索提供id。使用该id的所有行都应该显示。如果用户同时给出id和name,那么与该id和该名称相匹配的行应该显示等等。
发布于 2022-04-04 16:13:48
如果搜索项是空字符串,则可以使用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是一个空字符串,我们接受名称的所有值,但是如果它包含一个值,则搜索确切的值。这取决于你想怎么搜索。
https://stackoverflow.com/questions/71738807
复制相似问题