0

我对mysql的定位有问题。

我的表test如下所示:

行 => 类型

id => int
数据 => 字符串

当我尝试执行SELECT LOCATE("searchString", (SELECT data FROM测试时LIMIT 2))

我总是得到“子查询返回超过 1 行”。

我怎么解决这个问题?我只想选择我的搜索字符串是数据行的一部分的所有行。甚至可以用mysql做到这一点吗?

更新:

这只是一个子查询。孔查询看起来像这样:

SELECT * FROM anamnese WHERE STRCMP("01.01.2012", (SELECT SUBSTRING(
                                              FROM ( SELECT LOCATE ... )
                                              FOR (SELECT LOACTE ....)+10)
                                 = 0

所以我必须在数据库中搜索的某个字符串中搜索一个日期。而且我不能改变数据库上的任何东西!

4

2 回答 2

1

使用LIKE查询。这将返回该data列包含单词“searchString”的所有行:

SELECT `data` FROM `test` WHERE `data` LIKE '%searchString%';
于 2013-04-29T15:25:09.693 回答
0

LOCATE(substr, string)

如果您希望它起作用,您需要在查询中输入“LIMIT 1”而不是“LIMIT 2”。

无论如何,我想这不是你要找的。

资料来源:MySQL 文档

于 2013-04-29T15:25:59.533 回答