这是表格
*City Crime*
Bangkok High
Hongkong Very High
Seoul Low, Average
Texas Average, High
Jakarta Low
Singapore Very Low
Las Vegas Average, Low
sql如何搜索犯罪“低”的地方 我使用preg_split,但我不知道匹配数据库
答案 0 :(得分:1)
使用LIKE
匹配器选择字符串的部分匹配:
SELECT *
FROM cities
WHERE crime LIKE '%Low%'
如果您需要不区分大小写,请使用LOWER(crime)
将列转换为小写。
答案 1 :(得分:1)
试试吧。
MySQL的:
select * from City
where (Crime like 'low%' or Crime like '%, low%' or Crime like '%low,%')
SQL:
class CustomUser(AbstractBaseUser):
email = models.EmailField('email address', unique=True, db_index=True)
username = models.CharField('username', max_length=50, unique=True, db_index=True)
first_name = models.CharField(max_length=50, blank=False)
last_name = models.CharField(max_length=50, blank=False)
joined = models.DateTimeField(auto_now_add=True)
is_active = models.BooleanField(default=True)
is_admin = models.BooleanField(default=False)
date_joined = models.DateTimeField(_('date joined'), default=timezone.now)
USERNAME_FIELD = 'username'
REQUIRED_FIELDS = []
objects = CustomUserManager()
def __unicode__(self):
return self.username
答案 2 :(得分:0)
select *
from table
where
`crime` like '%Low%'
and `crime` not like '%Very Low%';
答案 3 :(得分:0)
您选择记录 符合WHERE
的某些条件。
select * from mytable where crime = 'Low';
您的表格中还有其他条目,其中犯罪字符串包含“低”子字符串。例如。 '低,平均'和'平均,低'。当然,我不知道这些的确切含义。这两个意思是一样的吗?他们是否意味着犯罪“低到平均”?还是不确定“低价还是低价”?你会把它算作“低”还是高于“低”的另一个级别?
然后是“非常低”的条目。你会认为这个“低”还是超出水平?
根据答案,您可以在查询上方扩展以匹配所有“低”子字符串:
select * from mytable where crime like '%Low%';
或使用更高级的字符串搜索,例如
select * from mytable
where ',' || replace(replace(crime, ', ', ','), ' ,', ',') || ',' like '%,Low,%';
会得到“低,平均”和“平均,低”,但不会“非常低”。