php查询匹配字符串长度,PHP-根据行中字符的字符长度选择匹配项

我有2条SELECT语句,假设要这样做,以便所需的匹配数直接与“输入”列的char_length相对应.因此,例如:

if (char_length(input) <= 5) { matches required is 1 }

if (char_length(input) > 5 && char_length(input) <= 10) { matches required is 2 }

if (char_length(input) > 10 && char_length(input) <= 15) { matches required is 3 }

and ect...

但是,事实并非如此.只要有匹配项,它就会选择该行,而不管字符串中char的长度如何.这是我的代码:

SELECT @limit :=0;

SELECT input, response, (

input LIKE '% one %'

) AS matches, @limit := @limit +1

FROM allData

WHERE @limit < CEIL( CHAR_LENGTH( input ) /5 )

HAVING matches >0

AND matches = (

SELECT MAX( (

input LIKE '% one %'

) )

FROM allData )

LIMIT 30 ;

因此,例如:

?列:输入:示例行“您一天将拥有什么超能力”

^ —仅在有8个匹配项时才被选中,因为42/5 = 8.4.

42是上面字符串的字符长度.仅在有8个匹配项的情况下才应从此处选择.但是,只有1个匹配项-单词“ one”,但还是被选中了.我不确定自己做错了什么.请看一下我的代码.

被标记为重复.它不是重复的.我从那里得到的答案是行不通的.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值