首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法找到介于两者之间的?

有没有办法找到介于两者之间的?
EN

Stack Overflow用户
提问于 2014-03-11 14:39:19
回答 2查看 35关注 0票数 0

首先我要说声抱歉,因为之前的系统/数据库设计将数据以字符串格式存储在像>>> A1 - A8 (表示第1行到第8行)或B4 - B12 (表示第4行到第12行)这样的组中,并存储在数据库中。

示例

========================

=*条件    =

========================

=*A1-A8**=       Good       =

=B4-B12=         Bad        =

========================

但是现在系统改变了!!(一年后)并且需要用1来识别它的每一个,这意味着现在用户输入A4,系统能够返回它的状态(好)或进入A20系统返回未找到

有没有办法(编码端或sql语句)在不改变数据库设计的情况下满足这一新需求?因为如果在数据库端改变,它也需要改变它存储数据的方式(还有更多的工作要做)

我希望你们能理解我的问题。顺便说一下,我使用的是PHP和mySQL。

EN

回答 2

Stack Overflow用户

发布于 2014-03-11 14:44:41

您将必须通过第一个字符提取行,例如'A‘,然后将'1’转换为'8‘为一个范围(A1,A2...,A8),然后执行in_array以查看它们是否存在于数组中。虽然看起来非常复杂和昂贵的解决方案

票数 0
EN

Stack Overflow用户

发布于 2014-03-11 14:53:28

这是非常糟糕的数据库设计,您应该考虑更改。现在,逻辑是这样的:

将用户输入拆分为字母和数字-比方说从表中拆分座位(以及Condition),

  • -

  • Then拆分它-比方说row_seat_letter1row_seat_number1row_seat_letter2,如果D18>不匹配D19user_seat_letter >,则从表中取出下一个座位

ii)否则,如果座位匹配,则检查user_seat_number是否等于row_seat_number1row_seat_number2之间

a)如果为true,则返回该行的Condition;b)否则返回'Not Found‘

iii) Else return 'Not Found'

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22318232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档