Mysql 基于子序列查询的猜测数

Mysql 基于子序列查询的猜测数,mysql,sql,Mysql,Sql,我正在处理一个SQL查询,根据模糊子序列输入数据猜测/识别一个9位数。目标是基于多个子序列可能性的模糊/加权输入分数对数字进行排序 我很难生成和排序一个大的候选数字表 更具体地说,使用sqlfiddle.com,我目前无法生成或排序一个包含9位数字的大表 在架构构建阶段完成之前,我遇到了一个超时错误 有人能提供关于如何使用sqlfidde.com生成和排序大型表的建议吗 以下是SQLFIDLE链接: 下面是SQLFIDLE中使用的确切代码的副本: 查询文本: CREATE TABLE numb

我正在处理一个SQL查询,根据模糊子序列输入数据猜测/识别一个9位数。目标是基于多个子序列可能性的模糊/加权输入分数对数字进行排序

我很难生成和排序一个大的候选数字表

更具体地说,使用sqlfiddle.com,我目前无法生成或排序一个包含9位数字的大表

在架构构建阶段完成之前,我遇到了一个超时错误

有人能提供关于如何使用sqlfidde.com生成和排序大型表的建议吗

以下是SQLFIDLE链接:

下面是SQLFIDLE中使用的确切代码的副本:

查询文本:

CREATE TABLE numbers (n INT);

INSERT INTO numbers VALUES (700000000),(700000001),(700000002),(700000003),(700000004);

INSERT INTO numbers SELECT n+(SELECT COUNT(*) FROM numbers) FROM numbers;
INSERT INTO numbers SELECT n+(SELECT COUNT(*) FROM numbers) FROM numbers;
INSERT INTO numbers SELECT n+(SELECT COUNT(*) FROM numbers) FROM numbers;
INSERT INTO numbers SELECT n+(SELECT COUNT(*) FROM numbers) FROM numbers;
INSERT INTO numbers SELECT n+(SELECT COUNT(*) FROM numbers) FROM numbers;
INSERT INTO numbers SELECT n+(SELECT COUNT(*) FROM numbers) FROM numbers;
INSERT INTO numbers SELECT n+(SELECT COUNT(*) FROM numbers) FROM numbers;
INSERT INTO numbers SELECT n+(SELECT COUNT(*) FROM numbers) FROM numbers;
INSERT INTO numbers SELECT n+(SELECT COUNT(*) FROM numbers) FROM numbers;
INSERT INTO numbers SELECT n+(SELECT COUNT(*) FROM numbers) FROM numbers;
INSERT INTO numbers SELECT n+(SELECT COUNT(*) FROM numbers) FROM numbers;
INSERT INTO numbers SELECT n+(SELECT COUNT(*) FROM numbers) FROM numbers;
INSERT INTO numbers SELECT n+(SELECT COUNT(*) FROM numbers) FROM numbers;


ALTER TABLE numbers MODIFY COLUMN n TEXT;

CREATE TABLE ft (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, value TEXT NOT NULL, FULLTEXT KEY (value)) ENGINE=MyISAM;

INSERT INTO ft (value) SELECT * from numbers;

查询文本


/* Generate table of valid social security number ( SSN ) or valid social insurance number ( SIN ) for Canada. */

/* FIXME - Currently using small placeholder table that will work with SqlFiddle */

/* Sort social security number ( SSN ) based on audio queries */

SELECT   *,
match(value) against

  ('0*' IN BOOLEAN MODE)

/* "AMERICA" query with weighted subsequences */
/* Default input weighting/score is 10.0 */

+ 10.0 * 1.0 * (value REGEXP '1776')
+ 10.0 * 2.0 * (value REGEXP '177')
+ 10.0 * 2.0 * (value REGEXP '776')
+ 10.0 * 3.0 * (value REGEXP '17')
+ 10.0 * 5.0 * (value REGEXP '77')
+ 10.0 * 3.0 * (value REGEXP '76')
+ 10.0 * 1.0 * (value REGEXP '7')
+ 10.0 * 1.0 * (value REGEXP '704')
+ 10.0 * 1.0 * (value REGEXP '0704')

/* "NICKELBACK" query with weighted subsequences */
/* Default input weighting/score is 2.0 */

+ 2.0 * 1.0 * (value REGEXP '..5..5..5')
+ 2.0 * 2.0 * (value REGEXP '..5..5...')
+ 2.0 * 3.0 * (value REGEXP '..5.....5')
+ 2.0 * 3.0 * (value REGEXP '.....5..5')
+ 2.0 * 4.0 * (value REGEXP '..5......')
+ 2.0 * 4.0 * (value REGEXP '.....5...')
+ 2.0 * 8.0 * (value REGEXP '........5')
+ 2.0 * 1.0 * (value REGEXP '5')

/* "AFGHANISTAN" query with weighted subsequences */
/* Default input weighting/score is 4.0 */

+ 4.0 * 2.0 * (value REGEXP '2003')
+ 4.0 * 2.0 * (value REGEXP '200')
+ 4.0 * 2.0 * (value REGEXP '003')
+ 4.0 * 3.0 * (value REGEXP '20')
+ 4.0 * 3.0 * (value REGEXP '03')
+ 4.0 * 4.0 * (value REGEXP '911')
+ 4.0 * 1.0 * (value REGEXP '91')
+ 4.0 * 2.0 * (value REGEXP '11')

/* 7 at start is stronly preferred */

+ 10000.0 * (value REGEXP '7........')

as score 
FROM ft
ORDER BY score DESC
LIMIT 1000

下面是我在sqlfiddle上遇到的确切错误:


语句由于超时或客户端请求而被取消

我只需单击您的SQLFIDLE链接,按“构建架构”,然后按“运行SQL”,一切正常。我是否错过了一步?sqlfiddle有时会无缘无故地失败。我大部分时间都转向了我有一个类似的问题-我会使用@Barmar提到的db-fiddle.com