<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans">
	<id>https://xenoblade2.cn/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E5%9D%97%3AXb2QueryHelper</id>
	<title>模块:Xb2QueryHelper - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://xenoblade2.cn/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E5%9D%97%3AXb2QueryHelper"/>
	<link rel="alternate" type="text/html" href="https://xenoblade2.cn/index.php?title=%E6%A8%A1%E5%9D%97:Xb2QueryHelper&amp;action=history"/>
	<updated>2026-11-01T14:35:41Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://xenoblade2.cn/index.php?title=%E6%A8%A1%E5%9D%97:Xb2QueryHelper&amp;diff=42072&amp;oldid=prev</id>
		<title>2020年4月21日 (二) 12:46 ヒカリ</title>
		<link rel="alternate" type="text/html" href="https://xenoblade2.cn/index.php?title=%E6%A8%A1%E5%9D%97:Xb2QueryHelper&amp;diff=42072&amp;oldid=prev"/>
		<updated>2020-04-21T12:46:05Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2020年4月21日 (二) 20:46的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l166&quot;&gt;第166行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第166行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;       &amp;quot;BTL_Arts_Dr&amp;quot;.&amp;quot;Driver&amp;quot; = ]] ..&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;       &amp;quot;BTL_Arts_Dr&amp;quot;.&amp;quot;Driver&amp;quot; = ]] ..&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;       id&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;       id&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  )&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;end&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;function p.getArtsDrListByDriverAndWpnType(driverId, WpnType)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  return p.query(&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    [[&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    SELECT&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      btl_arts_dr_ms.&quot;name&quot; AS &quot;NameText&quot;,&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      btl_arts_dr_cap.&quot;name&quot; AS &quot;CaptionText&quot;,&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      condcapms.&quot;name&quot; AS &quot;CondCapText&quot;,&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      talentcapms.&quot;name&quot; AS &quot;TalentCapText&quot;,&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      &quot;BTL_Arts_Dr&quot;.* &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    FROM&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      &quot;BTL_Arts_Dr&quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      LEFT JOIN btl_arts_dr_ms ON &quot;BTL_Arts_Dr&quot;.&quot;Name&quot; = btl_arts_dr_ms.row_id&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      LEFT JOIN btl_arts_dr_cap ON &quot;BTL_Arts_Dr&quot;.&quot;Caption&quot; = btl_arts_dr_cap.row_id&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;			LEFT JOIN btl_arts_dr_cap AS condcapms ON &quot;BTL_Arts_Dr&quot;.&quot;CondCap&quot; = condcapms.row_id&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      LEFT JOIN btl_arts_dr_cap AS talentcapms ON &quot;BTL_Arts_Dr&quot;.&quot;TalentCap&quot; = talentcapms.row_id&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    WHERE&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      &quot;BTL_Arts_Dr&quot;.&quot;Driver&quot; = ]] ..&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      driverId .. [[ AND &quot;BTL_Arts_Dr&quot;.&quot;WpnType&quot; = ]] .. WpnType&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   )&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   )&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key xb2wiki_143:diff:1.41:old-41738:rev-42072:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>ヒカリ</name></author>
	</entry>
	<entry>
		<id>https://xenoblade2.cn/index.php?title=%E6%A8%A1%E5%9D%97:Xb2QueryHelper&amp;diff=41738&amp;oldid=prev</id>
		<title>ヒカリ：​MWBot</title>
		<link rel="alternate" type="text/html" href="https://xenoblade2.cn/index.php?title=%E6%A8%A1%E5%9D%97:Xb2QueryHelper&amp;diff=41738&amp;oldid=prev"/>
		<updated>2020-02-09T17:00:42Z</updated>

		<summary type="html">&lt;p&gt;MWBot&lt;/p&gt;
&lt;a href=&quot;https://xenoblade2.cn/index.php?title=%E6%A8%A1%E5%9D%97:Xb2QueryHelper&amp;amp;diff=41738&amp;amp;oldid=41732&quot;&gt;显示更改&lt;/a&gt;</summary>
		<author><name>ヒカリ</name></author>
	</entry>
	<entry>
		<id>https://xenoblade2.cn/index.php?title=%E6%A8%A1%E5%9D%97:Xb2QueryHelper&amp;diff=41732&amp;oldid=prev</id>
		<title>ヒカリ：​MWBot</title>
		<link rel="alternate" type="text/html" href="https://xenoblade2.cn/index.php?title=%E6%A8%A1%E5%9D%97:Xb2QueryHelper&amp;diff=41732&amp;oldid=prev"/>
		<updated>2020-02-02T17:03:05Z</updated>

		<summary type="html">&lt;p&gt;MWBot&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2020年2月3日 (一) 01:03的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l388&quot;&gt;第388行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第388行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   local event = p.queryOne(mw.ustring.format([[SELECT &amp;quot;evtName&amp;quot; FROM &amp;quot;%s&amp;quot; WHERE &amp;quot;row_id&amp;quot; = %s]], eventTable, eventId))&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   local event = p.queryOne(mw.ustring.format([[SELECT &amp;quot;evtName&amp;quot; FROM &amp;quot;%s&amp;quot; WHERE &amp;quot;row_id&amp;quot; = %s]], eventTable, eventId))&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   local talkTable = event.evtName .. &amp;quot;_ms&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   local talkTable = event.evtName .. &amp;quot;_ms&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  mw.log(talkTable)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   if checkTableExist(talkTable) == false then&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   if checkTableExist(talkTable) == false then&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l463&quot;&gt;第463行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第461行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local prtQuest =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local prtQuest =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;       p.queryOne(&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;       p.queryOne(&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;       mw.ustring.format([[SELECT &quot;QuestTitle&quot; FROM &quot;%s&quot; WHERE &quot;row_id&quot; = &#039;%&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;s&lt;/del&gt;&#039;]], questTable, quest.PRTQuestID)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;       mw.ustring.format([[SELECT &quot;QuestTitle&quot; FROM &quot;%s&quot; WHERE &quot;row_id&quot; = &#039;%&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;d&lt;/ins&gt;&#039;]], questTable, quest.PRTQuestID)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     )&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     )&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     return getQuestTitle(prtQuest.QuestTitle)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    local phase = questId - quest.PRTQuestID&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     return getQuestTitle(prtQuest.QuestTitle)&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, phase&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   return nil&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   return nil&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;end&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;function p.getConditonList(id)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  if id &amp;lt;= 0 then&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    return nil&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  end&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  return p.queryOne(mw.ustring.format([[SELECT * FROM &quot;FLD_ConditionList&quot; WHERE &quot;row_id&quot; = &#039;%d&#039;]], id))&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;end&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;function p.getSubCondition(conditionType, id)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  if id &amp;lt;= 0 then&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    return nil&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  end&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  local table = &quot;FLD_Condition&quot; .. conditionType&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  return p.queryOne(mw.ustring.format([[SELECT * FROM &quot;%s&quot; WHERE &quot;row_id&quot; = &#039;%d&#039;]], table, id))&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;return p&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;return p&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>ヒカリ</name></author>
	</entry>
	<entry>
		<id>https://xenoblade2.cn/index.php?title=%E6%A8%A1%E5%9D%97:Xb2QueryHelper&amp;diff=41713&amp;oldid=prev</id>
		<title>ヒカリ：​MWBot</title>
		<link rel="alternate" type="text/html" href="https://xenoblade2.cn/index.php?title=%E6%A8%A1%E5%9D%97:Xb2QueryHelper&amp;diff=41713&amp;oldid=prev"/>
		<updated>2020-02-02T11:13:30Z</updated>

		<summary type="html">&lt;p&gt;MWBot&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2020年2月2日 (日) 19:13的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l300&quot;&gt;第300行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第300行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local sql = mw.ustring.format([[SELECT * FROM &amp;quot;%s&amp;quot; WHERE &amp;quot;NpcID&amp;quot; = &amp;#039;%s&amp;#039;]], t.tablename, npcId)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local sql = mw.ustring.format([[SELECT * FROM &amp;quot;%s&amp;quot; WHERE &amp;quot;NpcID&amp;quot; = &amp;#039;%s&amp;#039;]], t.tablename, npcId)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local resultInSingleTable = p.query(sql)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     local resultInSingleTable = p.query(sql)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     for _, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;v &lt;/del&gt;in ipairs(resultInSingleTable) do&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     for _, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;npcPopRow &lt;/ins&gt;in ipairs(resultInSingleTable) do&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;       table.insert(result, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;v&lt;/del&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      -- Npc存在Group字段，则用Group覆盖自身数据&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      if npcPopRow.Group &amp;gt; 0 then&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        local groupData =&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;          p.queryOne(&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;          mw.ustring.format(&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;            [[SELECT &quot;memberNum&quot;, &quot;ScenarioFlagMin&quot;, &quot;ScenarioFlagMax&quot;, &quot;QuestFlag&quot;, &quot;QuestFlagMin&quot;, &quot;QuestFlagMax&quot;, &quot;TimeRange&quot;, &quot;Condition&quot; FROM &quot;FLD_NpcGroupId&quot; WHERE &quot;row_id&quot; = &#039;%d&#039;]],&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;            npcPopRow.Group&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;          )&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        )&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        for k, v in pairs(groupData) do&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;          npcPopRow[k] = v&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;        end&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      end&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;       table.insert(result, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;npcPopRow&lt;/ins&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>ヒカリ</name></author>
	</entry>
	<entry>
		<id>https://xenoblade2.cn/index.php?title=%E6%A8%A1%E5%9D%97:Xb2QueryHelper&amp;diff=40743&amp;oldid=prev</id>
		<title>ヒカリ：​MWBot</title>
		<link rel="alternate" type="text/html" href="https://xenoblade2.cn/index.php?title=%E6%A8%A1%E5%9D%97:Xb2QueryHelper&amp;diff=40743&amp;oldid=prev"/>
		<updated>2020-02-01T18:19:03Z</updated>

		<summary type="html">&lt;p&gt;MWBot&lt;/p&gt;
&lt;a href=&quot;https://xenoblade2.cn/index.php?title=%E6%A8%A1%E5%9D%97:Xb2QueryHelper&amp;amp;diff=40743&amp;amp;oldid=40670&quot;&gt;显示更改&lt;/a&gt;</summary>
		<author><name>ヒカリ</name></author>
	</entry>
	<entry>
		<id>https://xenoblade2.cn/index.php?title=%E6%A8%A1%E5%9D%97:Xb2QueryHelper&amp;diff=40670&amp;oldid=prev</id>
		<title>ヒカリ：​MWBot</title>
		<link rel="alternate" type="text/html" href="https://xenoblade2.cn/index.php?title=%E6%A8%A1%E5%9D%97:Xb2QueryHelper&amp;diff=40670&amp;oldid=prev"/>
		<updated>2019-10-15T04:03:15Z</updated>

		<summary type="html">&lt;p&gt;MWBot&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
p.language = &amp;quot;cn&amp;quot;&lt;br /&gt;
&lt;br /&gt;
local cache = {}&lt;br /&gt;
&lt;br /&gt;
function p.query(sql)&lt;br /&gt;
  if cache[sql] then&lt;br /&gt;
    return cache[sql]&lt;br /&gt;
  end&lt;br /&gt;
  local result = mw.xbdb.query(sql, p.language)&lt;br /&gt;
  cache[sql] = result&lt;br /&gt;
  return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.queryOne(sql)&lt;br /&gt;
  local result = p.query(sql)&lt;br /&gt;
  if #result == 1 then&lt;br /&gt;
    result = result[1]&lt;br /&gt;
  elseif #result == 0 then&lt;br /&gt;
    error(&amp;quot;SQL返回结果为空\n&amp;quot; .. sql)&lt;br /&gt;
  else&lt;br /&gt;
    error(&amp;quot;结果行数大于1，请检查WHERE条件\n&amp;quot; .. sql)&lt;br /&gt;
  end&lt;br /&gt;
  return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getEnhance(id)&lt;br /&gt;
  if type(id) ~= &amp;quot;number&amp;quot; then&lt;br /&gt;
    error(&amp;quot;id must be number&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local result =&lt;br /&gt;
    p.queryOne(&lt;br /&gt;
    [[&lt;br /&gt;
    SELECT&lt;br /&gt;
      &amp;quot;BTL_Enhance&amp;quot;.&amp;quot;Param1&amp;quot;,&lt;br /&gt;
      &amp;quot;BTL_Enhance&amp;quot;.&amp;quot;Param2&amp;quot;,&lt;br /&gt;
      &amp;quot;BTL_EnhanceEff&amp;quot;.&amp;quot;Param&amp;quot;,&lt;br /&gt;
      &amp;quot;btl_enhance_cap&amp;quot;.&amp;quot;name&amp;quot; AS &amp;quot;Caption&amp;quot;,&lt;br /&gt;
      &amp;quot;btl_buff_ms&amp;quot;.&amp;quot;name&amp;quot; AS &amp;quot;BuffName&amp;quot; &lt;br /&gt;
    FROM&lt;br /&gt;
      &amp;quot;BTL_Enhance&amp;quot;&lt;br /&gt;
      INNER JOIN &amp;quot;BTL_EnhanceEff&amp;quot; ON &amp;quot;BTL_Enhance&amp;quot;.&amp;quot;EnhanceEffect&amp;quot; = &amp;quot;BTL_EnhanceEff&amp;quot;.row_id&lt;br /&gt;
      LEFT JOIN &amp;quot;btl_enhance_cap&amp;quot; ON &amp;quot;BTL_Enhance&amp;quot;.&amp;quot;Caption&amp;quot; = &amp;quot;btl_enhance_cap&amp;quot;.row_id&lt;br /&gt;
      LEFT JOIN &amp;quot;btl_buff_ms&amp;quot; ON &amp;quot;BTL_EnhanceEff&amp;quot;.&amp;quot;Name&amp;quot; = &amp;quot;btl_buff_ms&amp;quot;.row_id&lt;br /&gt;
    WHERE&lt;br /&gt;
      &amp;quot;BTL_Enhance&amp;quot;.row_id = ]] ..&lt;br /&gt;
      id&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
  local CaptionText =&lt;br /&gt;
    p.replaceCaptionParam(&lt;br /&gt;
    result.Caption or &amp;quot;&amp;quot;,&lt;br /&gt;
    {&lt;br /&gt;
      Param = result.Param,&lt;br /&gt;
      Param1 = result.Param1,&lt;br /&gt;
      Param2 = result.Param2&lt;br /&gt;
    }&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
  result.RenderedCaption = CaptionText&lt;br /&gt;
&lt;br /&gt;
  return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.replaceCaptionParam(caption, params)&lt;br /&gt;
  local str = caption&lt;br /&gt;
&lt;br /&gt;
  local paramStrArray = {}&lt;br /&gt;
  local paramStr = &amp;quot;&amp;quot;&lt;br /&gt;
  local inStr = false&lt;br /&gt;
&lt;br /&gt;
  for i = 1, mw.ustring.len(str) do&lt;br /&gt;
    local c = mw.ustring.sub(str, i, i)&lt;br /&gt;
&lt;br /&gt;
    if c == &amp;quot;]&amp;quot; then&lt;br /&gt;
      inStr = false&lt;br /&gt;
&lt;br /&gt;
      if not mw.ustring.find(paramStr, &amp;quot;ML:Enhance&amp;quot;) then&lt;br /&gt;
        error(&amp;quot;找不到 ML:Enhance:&amp;quot; .. paramStr)&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
      if mw.ustring.find(paramStr, &amp;quot;Param1&amp;quot;) then&lt;br /&gt;
        paramStrArray.Param1 = paramStr&lt;br /&gt;
      elseif mw.ustring.find(paramStr, &amp;quot;Param2&amp;quot;) then&lt;br /&gt;
        paramStrArray.Param2 = paramStr&lt;br /&gt;
      else&lt;br /&gt;
        paramStrArray.Param = paramStr&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if inStr then&lt;br /&gt;
      paramStr = paramStr .. c&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if c == &amp;quot;[&amp;quot; then&lt;br /&gt;
      inStr = true&lt;br /&gt;
      paramStr = &amp;quot;&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  for k, v in pairs(paramStrArray) do&lt;br /&gt;
    str = mw.ustring.gsub(str, &amp;quot;%[&amp;quot; .. v .. &amp;quot;%]&amp;quot;, params[k])&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return str&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getBuff(id)&lt;br /&gt;
  return p.queryOne(&lt;br /&gt;
    [[&lt;br /&gt;
    SELECT&lt;br /&gt;
      &amp;quot;btl_buff_ms&amp;quot;.&amp;quot;name&amp;quot; AS &amp;quot;Name&amp;quot;,&lt;br /&gt;
      &amp;quot;btl_buff_cap&amp;quot;.&amp;quot;name&amp;quot; AS &amp;quot;Caption&amp;quot;,&lt;br /&gt;
      &amp;quot;BaseNum&amp;quot;,&lt;br /&gt;
      &amp;quot;BaseTime&amp;quot;,&lt;br /&gt;
      &amp;quot;BaseRecast&amp;quot;,&lt;br /&gt;
      &amp;quot;BaseProb&amp;quot;,&lt;br /&gt;
      &amp;quot;Interval&amp;quot; &lt;br /&gt;
    FROM&lt;br /&gt;
      &amp;quot;BTL_Buff&amp;quot;&lt;br /&gt;
      LEFT JOIN &amp;quot;btl_buff_cap&amp;quot; ON &amp;quot;BTL_Buff&amp;quot;.&amp;quot;Caption&amp;quot; = &amp;quot;btl_buff_cap&amp;quot;.row_id&lt;br /&gt;
      LEFT JOIN &amp;quot;btl_buff_ms&amp;quot; ON &amp;quot;BTL_Buff&amp;quot;.&amp;quot;Name&amp;quot; = &amp;quot;btl_buff_ms&amp;quot;.row_id&lt;br /&gt;
    WHERE&lt;br /&gt;
      &amp;quot;BTL_Buff&amp;quot;.row_id = ]] ..&lt;br /&gt;
      id&lt;br /&gt;
  )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getArtsDr(id)&lt;br /&gt;
  return p.queryOne(&lt;br /&gt;
    [[&lt;br /&gt;
    SELECT&lt;br /&gt;
      btl_arts_dr_ms.&amp;quot;name&amp;quot; AS &amp;quot;NameText&amp;quot;,&lt;br /&gt;
      btl_arts_dr_cap.&amp;quot;name&amp;quot; AS &amp;quot;CaptionText&amp;quot;,&lt;br /&gt;
      &amp;quot;BTL_Arts_Dr&amp;quot;.* &lt;br /&gt;
    FROM&lt;br /&gt;
      &amp;quot;BTL_Arts_Dr&amp;quot;&lt;br /&gt;
      LEFT JOIN btl_arts_dr_ms ON &amp;quot;BTL_Arts_Dr&amp;quot;.&amp;quot;Name&amp;quot; = btl_arts_dr_ms.row_id&lt;br /&gt;
      LEFT JOIN btl_arts_dr_cap ON &amp;quot;BTL_Arts_Dr&amp;quot;.&amp;quot;Caption&amp;quot; = btl_arts_dr_cap.row_id&lt;br /&gt;
    WHERE&lt;br /&gt;
      &amp;quot;BTL_Arts_Dr&amp;quot;.row_id = ]] ..&lt;br /&gt;
      id&lt;br /&gt;
  )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getArtsDrListByDriver(id)&lt;br /&gt;
  return p.query(&lt;br /&gt;
    [[&lt;br /&gt;
    SELECT&lt;br /&gt;
      btl_arts_dr_ms.&amp;quot;name&amp;quot; AS &amp;quot;NameText&amp;quot;,&lt;br /&gt;
      btl_arts_dr_cap.&amp;quot;name&amp;quot; AS &amp;quot;CaptionText&amp;quot;,&lt;br /&gt;
      condcapms.&amp;quot;name&amp;quot; AS &amp;quot;CondCapText&amp;quot;,&lt;br /&gt;
      talentcapms.&amp;quot;name&amp;quot; AS &amp;quot;TalentCapText&amp;quot;,&lt;br /&gt;
      &amp;quot;BTL_Arts_Dr&amp;quot;.* &lt;br /&gt;
    FROM&lt;br /&gt;
      &amp;quot;BTL_Arts_Dr&amp;quot;&lt;br /&gt;
      LEFT JOIN btl_arts_dr_ms ON &amp;quot;BTL_Arts_Dr&amp;quot;.&amp;quot;Name&amp;quot; = btl_arts_dr_ms.row_id&lt;br /&gt;
      LEFT JOIN btl_arts_dr_cap ON &amp;quot;BTL_Arts_Dr&amp;quot;.&amp;quot;Caption&amp;quot; = btl_arts_dr_cap.row_id&lt;br /&gt;
			LEFT JOIN btl_arts_dr_cap AS condcapms ON &amp;quot;BTL_Arts_Dr&amp;quot;.&amp;quot;CondCap&amp;quot; = condcapms.row_id&lt;br /&gt;
      LEFT JOIN btl_arts_dr_cap AS talentcapms ON &amp;quot;BTL_Arts_Dr&amp;quot;.&amp;quot;TalentCap&amp;quot; = talentcapms.row_id&lt;br /&gt;
    WHERE&lt;br /&gt;
      &amp;quot;BTL_Arts_Dr&amp;quot;.&amp;quot;Driver&amp;quot; = ]] ..&lt;br /&gt;
      id&lt;br /&gt;
  )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getDr(id)&lt;br /&gt;
  local result =&lt;br /&gt;
    p.queryOne(&lt;br /&gt;
    [[&lt;br /&gt;
    SELECT&lt;br /&gt;
      chr_dr_ms.&amp;quot;name&amp;quot; AS &amp;quot;NameText&amp;quot;,&lt;br /&gt;
      category1.&amp;quot;name&amp;quot; AS &amp;quot;FavoriteCategory1Text&amp;quot;,&lt;br /&gt;
      itm1ms.&amp;quot;name&amp;quot; AS &amp;quot;FavoriteItem1Text&amp;quot;,&lt;br /&gt;
      category2.&amp;quot;name&amp;quot; AS &amp;quot;FavoriteCategory2Text&amp;quot;,&lt;br /&gt;
      itm2ms.&amp;quot;name&amp;quot; AS &amp;quot;FavoriteItem2Text&amp;quot;,&lt;br /&gt;
      &amp;quot;CHR_Dr&amp;quot;.* &lt;br /&gt;
    FROM&lt;br /&gt;
      &amp;quot;CHR_Dr&amp;quot;&lt;br /&gt;
      LEFT JOIN chr_dr_ms ON &amp;quot;CHR_Dr&amp;quot;.&amp;quot;Name&amp;quot; = chr_dr_ms.row_id&lt;br /&gt;
      LEFT JOIN menu_favorite_category AS category1 ON &amp;quot;CHR_Dr&amp;quot;.&amp;quot;FavoriteCategory1&amp;quot; - 11 = category1.row_id&lt;br /&gt;
      LEFT JOIN menu_favorite_category AS category2 ON &amp;quot;CHR_Dr&amp;quot;.&amp;quot;FavoriteCategory2&amp;quot; - 11 = category2.row_id&lt;br /&gt;
      LEFT JOIN &amp;quot;ITM_FavoriteList&amp;quot; AS item1 ON &amp;quot;CHR_Dr&amp;quot;.&amp;quot;FavoriteItem1&amp;quot; = item1.row_id&lt;br /&gt;
      LEFT JOIN itm_favorite AS itm1ms ON item1.&amp;quot;Name&amp;quot; = itm1ms.row_id&lt;br /&gt;
      LEFT JOIN &amp;quot;ITM_FavoriteList&amp;quot; AS item2 ON &amp;quot;CHR_Dr&amp;quot;.&amp;quot;FavoriteItem2&amp;quot; = item2.row_id&lt;br /&gt;
      LEFT JOIN itm_favorite AS itm2ms ON item2.&amp;quot;Name&amp;quot; = itm2ms.row_id &lt;br /&gt;
    WHERE&lt;br /&gt;
      &amp;quot;CHR_Dr&amp;quot;.row_id = ]] ..&lt;br /&gt;
      id&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
  local WpnType = result.WpnType&lt;br /&gt;
  WpnType = mw.ustring.sub(WpnType, 2)&lt;br /&gt;
  WpnType = mw.ustring.sub(WpnType, 1, -2)&lt;br /&gt;
&lt;br /&gt;
  local WpnTypeArray = {}&lt;br /&gt;
  for str in mw.ustring.gmatch(WpnType, &amp;quot;([^,]+)&amp;quot;) do&lt;br /&gt;
    table.insert(WpnTypeArray, str)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local condition = {}&lt;br /&gt;
  for i, v in ipairs(WpnTypeArray) do&lt;br /&gt;
    if tonumber(v) &amp;gt; 0 then&lt;br /&gt;
      table.insert(condition, i)&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  condition = table.concat(condition, &amp;quot;, &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  result.WpnType =&lt;br /&gt;
    p.query(&lt;br /&gt;
    [[&lt;br /&gt;
    SELECT&lt;br /&gt;
      &amp;quot;ITM_PcWpnType&amp;quot;.row_id,&lt;br /&gt;
      itm_pcwpntype_ms.&amp;quot;name&amp;quot; AS &amp;quot;Name&amp;quot;,&lt;br /&gt;
      menu_role_name_ms.&amp;quot;name&amp;quot; AS &amp;quot;Role&amp;quot;,&lt;br /&gt;
      &amp;quot;ITM_PcWpnType&amp;quot;.&amp;quot;JustRange&amp;quot;,&lt;br /&gt;
      &amp;quot;ITM_PcWpnType&amp;quot;.&amp;quot;JustRange2&amp;quot;&lt;br /&gt;
    FROM&lt;br /&gt;
      &amp;quot;ITM_PcWpnType&amp;quot;&lt;br /&gt;
      LEFT JOIN itm_pcwpntype_ms ON itm_pcwpntype_ms.row_id = &amp;quot;ITM_PcWpnType&amp;quot;.&amp;quot;Name&amp;quot;&lt;br /&gt;
      LEFT JOIN menu_role_name_ms ON menu_role_name_ms.row_id = &amp;quot;ITM_PcWpnType&amp;quot;.&amp;quot;Role&amp;quot;    &lt;br /&gt;
    WHERE&lt;br /&gt;
      &amp;quot;ITM_PcWpnType&amp;quot;.row_id IN (]] ..&lt;br /&gt;
      condition .. [[)&lt;br /&gt;
    ]]&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
  return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getSkillDrList(id)&lt;br /&gt;
  local driverIds = {&lt;br /&gt;
    [1] = true,&lt;br /&gt;
    [2] = true,&lt;br /&gt;
    [3] = true,&lt;br /&gt;
    [4] = true,&lt;br /&gt;
    [5] = true,&lt;br /&gt;
    [6] = true,&lt;br /&gt;
    [17] = true,&lt;br /&gt;
    [18] = true,&lt;br /&gt;
    [19] = true&lt;br /&gt;
  }&lt;br /&gt;
  if not driverIds[tonumber(id)] then&lt;br /&gt;
    return nil&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if tonumber(id) &amp;lt; 10 then&lt;br /&gt;
    id = &amp;quot;0&amp;quot; .. tostring(tonumber(id))&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  local result =&lt;br /&gt;
    p.query(&lt;br /&gt;
    [[&lt;br /&gt;
      SELECT&lt;br /&gt;
        btl_skill_dr_name.&amp;quot;name&amp;quot; AS &amp;quot;NameText&amp;quot;,&lt;br /&gt;
        &amp;quot;BTL_Skill_Dr_Table]] ..&lt;br /&gt;
      id ..&lt;br /&gt;
        [[&amp;quot;.*,&lt;br /&gt;
        &amp;quot;BTL_Skill_Dr&amp;quot;.&amp;quot;Enhance&amp;quot;&lt;br /&gt;
      FROM&lt;br /&gt;
        &amp;quot;BTL_Skill_Dr_Table]] ..&lt;br /&gt;
          id ..&lt;br /&gt;
            [[&amp;quot;&lt;br /&gt;
      LEFT JOIN &amp;quot;BTL_Skill_Dr&amp;quot; ON &amp;quot;BTL_Skill_Dr_Table]] ..&lt;br /&gt;
              id ..&lt;br /&gt;
                [[&amp;quot;.&amp;quot;SkillID&amp;quot; = &amp;quot;BTL_Skill_Dr&amp;quot;.row_id&lt;br /&gt;
      LEFT JOIN  btl_skill_dr_name ON btl_skill_dr_name.row_id = &amp;quot;BTL_Skill_Dr&amp;quot;.&amp;quot;Name&amp;quot;&lt;br /&gt;
      ORDER BY&lt;br /&gt;
        &amp;quot;Round&amp;quot;,&lt;br /&gt;
        &amp;quot;RowNum&amp;quot;,&lt;br /&gt;
        &amp;quot;ColumnNum&amp;quot;&lt;br /&gt;
    ]]&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
  for _, row in ipairs(result) do&lt;br /&gt;
    row.Enhance = p.getEnhance(tonumber(row.Enhance))&lt;br /&gt;
  end&lt;br /&gt;
  return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.t()&lt;br /&gt;
  local ret = p.getBuff(3).Name&lt;br /&gt;
  mw.logObject(ret)&lt;br /&gt;
  return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>ヒカリ</name></author>
	</entry>
</feed>