【发布时间】:2021-05-13 11:11:05
【问题描述】:
我正在寻找一种在 MySQL 或 MariaDB 中重叠/交叉淡化两个或多个字符串的精简方法。
有一个像这样的基本字符串:
XXXOOOOOOOXXX
然后有 n 个字符串需要交叉淡化该基本字符串。此演示案例中的规则是 X 应该是优先级。字符串可以有不同的长度。
所以这个字符串与基本字符串重叠:
OOOOOXOOOOOOOOOX
XXOOOXXOOOOOXXXXO
应该导致:
XXXOOXXOOOXXXXXXO
我可以在 PHP 中做到这一点,但也许 MySQL 或 MariaDB 中有一个函数可以使它更快。
【问题讨论】:
-
请解释一下“crossfade”是什么意思。这不是我熟悉的词。
-
@GordonLinoff 只是一个猜测,它似乎是某种按位运算,其中“位”是
X和O。 -
我试图在例子中解释它。字符串是相互叠加的,而 X 字符始终具有优先权,并优先于 O 字符。
-
如果您可以将字符串转换为(块)位字符串,其中“O”为 0,“X”为 1 个较短的字符串,右填充到较长字符串的长度(并返回),你可以使用二进制或:dbfiddle.uk/…
-
听起来很有趣。谢谢!