我的数据库有2列包含文字。当它说3条记录如下:
rec# col1 col2
1 my name is fred is
2 john mike
3 today not sat not it sat
我很感激帮助构建一个将返回记录号的正则表达式:
1 - >因为“是”匹配
3 - >因为“'not”和“sat”匹配(即至少存在一个匹配)
答案 0 :(得分:1)
我认为你可以这样做:
select t.*
from table t
where col1 rlike replace(col2, ' ', '|');
这会将col2
转换为正则表达式。所以,请注意,这个答案对col2
的内容非常敏感。如果它包含正则表达式特殊字符,那么这可能不起作用。
答案 1 :(得分:0)
“匹配”是什么意思?
此//first
new Imagemin()
.src('./'+req.file.path)
.dest('./compressed/')
.use(Imagemin.optipng({optimizationLevel: 3}))
.run(function (err, files) {
//console.log(files[0]);}
});
//this is next
var compress = fs.statSync('./compressed/'+req.file.filename);
console.log(req.file);
res.json({
filename: req.file.filename,
originalsize: req.file.size,
compressedsize: compress["size"]
});
会找到SELECT
至少包含其中一个词col1
或is
或not
的行:
sat
这表示 {/ 1>} SELECT rec_num
FROM tbl
WHERE col1 REGEXP '[[:<:]](is|not|sat)[[:>:]]';
和col1
中至少存在其中一个词:
col2
将SELECT rec_num
FROM tbl
WHERE col1 REGEXP '[[:<:]](is|not|sat)[[:>:]]'
AND col2 REGEXP '[[:<:]](is|not|sat)[[:>:]]';
更改为AND
,询问 (或两者)列中是否存在其中一个词。
如果你需要相同的字(is / not / sat)来匹配 OR
和col1
,那就更复杂了:
col2
如果您的意思是其他,请练习提出准确的问题。
<强>附加物强>
在SQL中发现两个文本字段之间共有哪些单词(如果有)是不实际的。这样的任务最好用应用程序编程语言(PHP,Java,Perl,...)来完成。