Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql在一列中搜索文本_Mysql_Search_Text - Fatal编程技术网

Mysql在一列中搜索文本

Mysql在一列中搜索文本,mysql,search,text,Mysql,Search,Text,比如我们的桌子 İd----价格------水平 1 ---100-300 --- 1,2 2 -----200-----1 3---100-280---1,3 我们要搜索一个价格值是110。110介于100-300和100-280之间,因此必须列出id 1和id 2。我们可以用我的sql写这个查询吗 另外,我们需要搜索价格和级别值。价格110和2级搜索。我们可以用我的sql写这个查询吗 谢谢您请使用两列作为价格 ID FROM TO LEVEL 1 100 300 1

比如我们的桌子

İd----价格------水平 1 ---100-300 --- 1,2 2 -----200-----1 3---100-280---1,3

我们要搜索一个价格值是110。110介于100-300和100-280之间,因此必须列出id 1和id 2。我们可以用我的sql写这个查询吗

另外,我们需要搜索价格和级别值。价格110和2级搜索。我们可以用我的sql写这个查询吗


谢谢您

请使用两列作为价格

ID  FROM     TO  LEVEL
1    100    300  1,2
2    200    200  1
3    100    280  1,3
然后SQL:

SELECT `level` FROM `table`
WHERE X >= `from` AND X <= `to`

请记住,创建数据库表时应考虑到它将满足您的查询需求。如果一个表的价格为100-300,表示一个字符串,或者在mysql中表示一个VARCHAR,而您希望将其视为一个数字,这是没有意义的。那怎么办呢

1我要做的第一件事是重新编写具有minPrice和maxPrice字段的表架构,这样您就可以得到:

İd----minPrice---maxPrice------level
1 ------100---------300 ------ 1,2
2 ------200---------200----------1
3 ------100---------280--------1,3
2那么您的查询将如下所示:

SELECT id FROM Mytable x WHERE myValue >=  x.minPrice AND myValue <= x.maxPrice
3如果您还想查找级别值。你会做:

SELECT id FROM Mytable x WHERE myValue >=  x.minPrice AND myValue <= x.maxPrice AND myLevelValue IN (x.level)

为什么这样保存价格范围,为什么不只是一个最小和最大列?回答你的问题:是的,你可以。请参阅normalizationx是sql变量吗?您在x.level中提到了myLevelValue,但我在该列中有更多值,例如id 1有级别1、2 1和2多个数据。为了你的战术,我必须划分我的等级场?。但这个解决方案对我来说很难,我必须修改那个脚本而不改变数据库。您能建议我使用sql命令吗?x是您表的别名。当我说在x.level中,它意味着它将在用逗号分隔的字段上迭代,你不必手动拆分它们。那样可以。您需要做的是更改MyTable-->您的表名、MyValue->my price value.的值。。MyLevel Value-->您的级别编号,以备查找。。您不必划分级别字段