我的数据库中存在表格问题。有三列如下:
Name (VARCHAR(25))
QText (TEXT)
AText (TEXT)
我的查询通过PDO运行:
SELECT `AText` FROM `Exam_QA_Data` WHERE `Name` = '$name' AND `QText` = '$question'
处理后看起来像这样,显然$question
变量的长度会改变:
SELECT `AText` FROM `Exam_QA_Data` WHERE `Name` = 'ExamServerTestExam' AND `QText` = 'This is the first question'
从我所看到的内容取决于字符串的长度而不是$question
,有时会返回一行,有时则不返回任何内容。
如果字符串很短(27个字符),那么它返回该行的'AText'
内容,但如果字符串很长(106个字符),如果$question
是一个长字符串则没有。我检查了数据库中的条目,并且整个字符串都存在,因此该行与搜索的完全相同。
我也尝试过使用:
SELECT `AText` FROM `Exam_QA_Data` WHERE `Name` = '$name' AND `QText` LIKE '%$question%'
无法理解这是否是数据库问题,如果是这样,为什么?它似乎是输入字符串长度的问题。
非常感谢。
答案 0 :(得分:0)
因此经过一些测试后,我发现搜索不喜欢长度超过80个字符的字符串。为了做到这一点,但仍然得到相同的结果我输入带有通配符的字符串,如下面的代码块所示:
class Student(models.Model):
....
....
....
PaidFees = models.IntegerField(blank = True, default = 0)
BalanceFees = models.IntegerField(blank = True, default = 0)
....
....
def save_model(self, request, obj, form, change):
if obj.BalanceFees == 0:
obj.BalanceFees = obj.ActualFees
else:
obj.BalanceFees = obj.BalanceFees-obj.PaidFees
obj.save()
感谢所有提出建议或试图提供帮助的人!