“我的表格”列“业务”如下所示:
var CronJob = require('cron').CronJob;
if(cluster.isMaster) {
var numWorkers = require('os').cpus().length;
console.log('Master cluster setting up ' + numWorkers + ' workers...');
for(var i = 0; i < numWorkers; i++) {
cluster.fork();
}
cluster.on('exit', function(worker, code, signal) {
console.log('Worker ' + worker.process.pid + ' died with code: ' + code + ', and signal: ' + signal);
cluster.fork();
});
new CronJob('01 30 08 * * 0-6', function() {
console.log('Running Schedular');
//Performing tasks
}, null, true, 'America/Los_Angeles');
} else {
var server = app.listen(port, function() {
console.log('Process ' + process.pid + ' is listening to all incoming requests');
});
}
我必须在字符串'Michael Kors'的此列上应用排序依据,因此排序的结果应类似于以下内容:
Michael Kors
Baltimore Michael Kors
Charlotte Michael Kors
Michael Texas
Kors Dallas
Michael Kors
如果String包含子字符串Michael Kors,则应按字母顺序在其顶部。因此,在上面的示例中,具有完全匹配项的两行位于顶部,然后是巴尔的摩和夏洛特,按字母顺序分别为第三和第四。不担心其他字符串不包含确切的单词Michael Kors
我尝试使用Substring_Index,但似乎不适用于带有空格的子字符串。感谢所有帮助。
答案 0 :(得分:3)
您可以有多个订购级别:
order by
locate('Michael Kors', business)=1 desc,
locate('Michael Kors', business)>0 desc,
business
第一个将最上面的匹配项排序到顶部,第二个级别将其余的匹配行排序,第三个排序所有的其余行。
答案 1 :(得分:1)
您可以在order by
子句中列出布尔表达式,并应用降序排列,以便对该表达式为true的记录在产生false的记录之前进行排序。然后在最后指定一个字母顺序,以确定所有其他表达式对两个记录没有区别的顺序:
select *
from mytable
order by (business = 'Michael Kors') desc,
(business like '%Michael Kors%') desc,
(business like '%Kors%') desc,
(business like '%Michael%') desc,
business
答案 2 :(得分:1)
尝试一下,
order by FIELD(business, 'Michael Kors’)