MySQL照片库脚本要求我通过将每个图像标题与表示所需顺序的数字配对来提供我的图库的显示顺序。
我有一个名为pairs_list.txt
的正确排序数据列表,如下所示:
# title correct data in list
-- -------
1 kmmal
2 bub14
3 ili2
4 sver2
5 ell5
6 ello1
...
因此,首先显示kimmals
图片,然后显示bub14
图片等。
我的名为title_order
的MySQL表具有相同的标题,但它们没有与正确的数字配对:
# title bad data in MySQL
-- -------
14 kmmal
100 bub14
31 ili2
47 sver2
32 ell5
1 ello1
...
如何创建一个MySQL脚本,它将查看pairs_list.txt
中正确的数字 - 标题配对,并遍历title_order
的每一行,用正确的数字替换每一行?换句话说,如何使MySQL表的顺序看起来像文本文件的顺序?
在伪代码中,它可能看起来像这样:
pair_list.txt
搜索此标题感谢您的帮助!
答案 0 :(得分:1)
如果这不是一次性任务但经常被称为函数,那么也许你可以有以下场景:
答案 1 :(得分:1)
我建议你这么做 -
1 从title_order
表中删除所有主键和唯一键,并在title
字段上创建唯一索引(或主键) -
ALTER TABLE title_order
ADD UNIQUE INDEX UK_title_order_title (title);
2 使用LOAD DATA INFILE和REPLACE选项从文件加载数据并替换 -
LOAD DATA INFILE 'pairs_list.txt'
REPLACE
INTO TABLE title_order
FIELDS TERMINATED BY ' '
LINES TERMINATED BY '\r\n'
IGNORE 2 LINES
(@col1, @col2)
SET order_number_field = @col1, title = TRIM(@col2);
...在LOAD DATA INFILE命令中指定所需的属性。