我有一个FieldA中的值和FieldB中的另一个值,该值存储在下游函数中用于比较目的。我需要比较,如果FIELDA = FieldB我做与MySQL:使用狮身人面像来比较字段和/或更新
Select TableA T1
Inner Join TableB T2
On T1.ID=T2.ID
and T1.FIeldA=T2.FIeldB
Set Matched='Y'
不过,为了确保FIELDA和FieldB是相同的,因为他们来自不同的来源,我需要先例如运行复杂的MySQL标准化更新
Update TableA set Field1 Set Field1=Replace(Field1,'Gato','Cat) where Field1 like '%Gato%
(实际上我用正则表达式,以确保长期是整个单词任何地方,但想保持这个问题简单,以防万一有人觉得有必要指出其中以上可能会失败)。
问题是我有大约2000条款需要更新,所以我必须在两个字段上运行所有2000个查询,并且每次进行比较。
因此,在我看来,一个理想的解决方案就是狮身人面像,我可以用字形或正则表达式,例如
Gato>Cat
Perro>Dog
索引表,然后用狮身人面像对它们进行比较,这样Gato
和Cat
将匹配。
但是我不能找出一种方法来构建两个字段之间做Match
的q sphinxQL查询,更不用说会影响更新的一个。有没有这样的解决方案?
btw,开始说使用子查询,但后来认为可能使用直接连接因为狮身人面像表在右边)。但未经测试,可能仍需要子查询。但是这个概念是一样的。 – barryhunter
我会尝试,过程的缓慢应该通过必须在所有我想要的字段和表上运行标准化来抵消这些表的单个狮身人面像索引。我会回报 – user3649739
我试过,就像在改变一个事物来反映我的表之前我得到了这个'[Err] 1064 - sphinxql:语法错误,意外的IDENT,期望SET或','在'INNER JOIN附近SphIndexB SET Matched ='Y' WHERE SphIndexB.query = CONCAT('@ FIeldB“^',TableA.Field1,'$”; mode = extended; limit 1')'' – user3649739