【问题标题】:how to query SQL for a ISBN with dashes against one with no dashes.如何在 SQL 中查询带有破折号的 ISBN 与没有破折号的 ISBN。
【发布时间】:2013-08-04 03:22:33
【问题描述】:

如何在 MySQL 数据库中查询格式为 000-0-0000-0000-0 的 ISBN 与具有相同位数但没有破折号的 ISBN?是否有我可以使用的 SQL 正则表达式替换方法之类的?任何建议将不胜感激。

【问题讨论】:

    标签: mysql sql regex search


    【解决方案1】:

    您根本不需要正则表达式。只需使用这样的东西:

    select t.*
    from t
    where replace(t.ISBN, '-', '') = @MyISBN;
    

    【讨论】:

    • +1 正在检查一个 sargable 解决方案,但结果证明这对 ISBN 来说并不有趣 :)
    • @JoachimIsaksson 。 . .该问题没有说明其他 ISBN 的来源。如果它是一个变量(正如我的回答所暗示的那样),那么你是对的 - 将破折号放在正确的位置将允许使用索引。但如果它来自另一张桌子,那就无济于事了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-11
    • 1970-01-01
    • 2011-11-05
    • 1970-01-01
    • 1970-01-01
    • 2011-12-17
    相关资源
    最近更新 更多