2016-02-12 108 views
-1

我有两个逗号分隔的字符串。 String1 ='ABC,DEF,PQR,MNO,XYZ' String2 ='PQR,FGH' String3 ='GHI,JKL,TUV' 现在我想要比较string1和string2,它会返回true,因为String2有值'PQR'与String1匹配。但是,如果我比较String1和String3,它将返回false,因为没有任何来自字符串3的字符串与String1匹配。 注意:这两个字符串我都使用了Group_concat函数。使用MYSQL比较两个字符串

+3

[主题已在此讨论](http://stackoverflow.com/questions/15280956/how-to-compare-two-comma-separated-strings-and-return-true-if-there-is-at至少)和[这里也是](http://stackoverflow.com/questions/15693316/compare-comma-delimited-strings-in-sql) – mitkosoft

+0

这种类型的问题一再问到堆栈溢出。大多数人给出的第一个答案是(大声呼喊):正确地规范你的数据。除非你有非常好的理由,否则将数据作为逗号分隔的字符串存储在数据库中是一个糟糕的主意。逗号之间的项目应该在与主表格具有一对多或多对多关系的单独表格中。 – rghome

+0

这是可能的,但也许是可以避免的。你可以把你的实际查询获得这些数据,看看是否有办法避免这样做?如果不是,你可以编写一个MySQL函数来执行它(不幸的是@mitkosoft的建议是针对MsSql而不是MySQL的),或者在SQL语句中使用一些技巧来做,但是如何去做取决于你如何获取数据。如果你已经从你的数据库中找到它,那么最好在你的调用脚本中完成它 – Kickstart

回答

0

我使用FIND_IN_SET()函数得到了解决方案。 感谢您的努力。