dsf23223 2018-03-12 16:24
浏览 129
已采纳

LIKE和NOT operatores - 没有预定单词的字符串的条件

tab_names (fictional example)

id   name
3 - Fred
5 - Fred - Family
7 - Marie
9 - Marie - Family

In the following very specific situation, 'Fred' and 'Fred - Family' are the same entity.

I need to get 'Fred' id from 'Fred - Family' id.

I know it's strange ...

My idea to solve:

1- First I get the 'name' corresponding to id 8 (that is, 'Fred - Family');

2 - Then I query the database for the id of the row that corresponds to the value 'Fred - Family' minus the string '- Family'

Illustration:

$name_family  = 'Fred - Family';

SELECT name FROM tab_names WHERE name LIKE  \"$name_family\" 
AND name NOT LIKE  '% - Family'

Any ideas how to build this query? Thanks.

  • 写回答

2条回答 默认 最新

  • dqtm8504 2018-03-12 16:44
    关注

    You could remove the '- Family' string directly in SQL.

    SELECT * 
    FROM tab_names 
    WHERE 
    name = (
       SELECT SUBSTRING(name, 1, LENGTH(name) - 9) 
       FROM tab_names 
       WHERE id = 8 LIMIT 1
    )
    

    Line SUBSTRING(name, 1, LENGTH(name) - 9) removes 9 characters from the end of the name

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作