MySQL选择文本字段包含大于X的数字的行

MySQL选择文本字段包含大于X的数字的行,mysql,select,find-in-set,Mysql,Select,Find In Set,我在数据库中有一个文本列MISCDATA,它包含多个数值和字符串值,由comas和分号分隔。有没有一种方法可以构建一个查询,只选择MISCDATA包含大于50的数字的行 我曾想过在集合中使用FIND_,但我无法将其置于正确的上下文中 SELECT * FROM Mytable WHERE FIND_IN_SET('NUMBER BIGGER THAN 50', MISCDATA); 我不知道我的解释是否正确,无论如何,所有的帮助都将被感激。谢谢 编辑: 字段中的一些示例数据: MA, 22;

我在数据库中有一个文本列MISCDATA,它包含多个数值和字符串值,由comas和分号分隔。有没有一种方法可以构建一个查询,只选择MISCDATA包含大于50的数字的行

我曾想过在集合中使用FIND_,但我无法将其置于正确的上下文中

SELECT * FROM Mytable WHERE FIND_IN_SET('NUMBER BIGGER THAN 50', MISCDATA);
我不知道我的解释是否正确,无论如何,所有的帮助都将被感激。谢谢

编辑:

字段中的一些示例数据:

MA, 22; HR, 42; HG, 29; JW, 44; MI, 76; GJ, 56;

上面的示例应该由SELECT列出,因为它包含两个大于50 MI和GJ的数字。

解决方案是使用:


工作是编写一个好的正则表达式…

如果您需要更改数据库设计,请务必这样做。切勿在一列中存储多个值。阅读有关规范化的文章。我可以想象这样的解决方案。但这几乎毫无意义。你有非常明确的意图——使用不同的价值观。因此,将它们存储为单独的实体。1:很多关系,所以数据库设计必须使用附加表。我不能这样做。我只是一个PHP顾问。另外,我不知道我会把它改成什么类型。每个数值正好是两位数吗?例如,MA,125是一个可能的值吗?MA,6怎么样?数值从0到99。永远不要超过99。而且,数字不可能存在,留下像GJ一样的字段;一个有用的答案应该包括解决提问者问题的正则表达式。此外,这个答案中的SQL语法不好:WHERE子句中没有列名。实际上,我不能给这篇文章留下评论,我只能发布一个答案。正如你所说,这不是一个完整的答案,但也许是得到它的方法。我想这会有点帮助。。。
SELECT * FROM Mytable WHERE REGEXP '@yourRegexToWrite'.