小编spa*_*ave的帖子

我有可能找到一个包含字符串的行吗?假设我不知道哪些列包含字符串

我知道有几种方法可以找到哪一行的列包含字符串,例如使用[column name] regexp''或[column name] like''

虽然目前我需要一些帮助,但我有一个包含多个列的表,所有的都有varchar或text,我不确定哪个列包含某个字符串.只是说我想从表中搜索"xxx.几个不同的列可以包含这个字符串.有没有办法可以找到哪个列包含这个字符串?

我有一个想法,解决方案可能是

 select * from [table name] where [column1] regexp 'xxx' or 
    [column2] regexp 'xxx' or ...... [column39] regexp 'xxx' or .....
[colum60] regexp 'xxx' or ... or [column 80] regexp 'xxx';
Run Code Online (Sandbox Code Playgroud)

我不希望这样的查询.还有另一种有效的方法吗?

为了给出一个更好的例子,假设我们正在搜索属于博客的表.

我们有标题,网址,内容,关键词,标签,评论等.现在我们只是说,如果任何博客文章与"数据库规范化"有关,这个词可能出现在标题,URL或内容中或任何地方,我不想一个一个地写出来

where title regexp 'database-normalization' or content regexp 'database-normalization' or url regexp 'database-normalization'......
Run Code Online (Sandbox Code Playgroud)

因为当有数百列时,我需要写一百,或者在这种情况下是否有一种有效的方式而不是写百或语句?就像使用if-else或集合或其他一些来构建查询一样.

mysql sql database select relational-database

8
推荐指数
1
解决办法
397
查看次数

标签 统计

database ×1

mysql ×1

relational-database ×1

select ×1

sql ×1