假设我有一个纯粹的字母数字字符串(“abc123”),我想查看它是否在数据库列中,但有一个警告 - 我希望在比较中忽略所有非字母数字字符。因此,例如,“abc〜!@#$%^ & *()123”将匹配。只有字母数字字符的匹配字段
有没有一种简单的方法可以在MySQL中执行此操作,最好不定义任何函数?我认为这可能与REGEXP比较。
假设我有一个纯粹的字母数字字符串(“abc123”),我想查看它是否在数据库列中,但有一个警告 - 我希望在比较中忽略所有非字母数字字符。因此,例如,“abc〜!@#$%^ & *()123”将匹配。只有字母数字字符的匹配字段
有没有一种简单的方法可以在MySQL中执行此操作,最好不定义任何函数?我认为这可能与REGEXP比较。
想通了这个正则表达式。
$regexp = implode('[^0-9a-zA-Z]*', str_split(remove_nonalphanums($word)));
然后我做The_Column REGEXP $regexp
如果你的表很大,那么在列上执行任何函数都会导致表扫描。那么只有用alnum字符创建另一个列,然后直接比较这个列呢?
如果是这样的东西,你会定期做,然后添加新列的“标准化'字符串并在该列上搜索。在数据库中进行正则表达式匹配很方便,但效率很低。最好只在客户端规范化搜索,并使用一些额外的数据库空间。
表格不是那么大(现在150行,最多2,000行) – babonk