sorry i'm new with django, could u please tell me how to use the debugger? On Wednesday, July 17, 2013 10:17:10 PM UTC+7, [email protected] wrote: > > On Wed, Jul 17, 2013 at 9:15 AM, spondbob squelpen > <[email protected]<javascript:>> > wrote: > > the '1' is coming from typeId, so the WHERE condition must be look like: > > WHERE placeType_id=1 AND (placeTag LIKE '%test%') > > > > print out tags: > > AND (placeTag LIKE '%test%') > > > > i have tried your solution by adding double percentage but still got > same > > error > > Like I said, use the debugger. > > > > > On Wednesday, July 17, 2013 10:04:48 PM UTC+7, [email protected]: > >> > >> On Wed, Jul 17, 2013 at 8:58 AM, spondbob squelpen <[email protected]> > > >> wrote: > >> > where do i put those double percentage? like this? > >> > tags = " AND (placeTag LIKE '%%" + "%%' OR placeTag LIKE > >> > '%%".join(placeTag.split(',')) + "%%')" > >> > > >> > but still got the same error: > >> > Warning: Truncated incorrect DOUBLE value: '1 AND (placeTag LIKE > >> > '%%test%%')' > >> > >> Where is the '1' coming from? I'd set a breakpoint here and run the > >> development server and see exactly what is going on. Print out the > >> tags and query, and if necessary step into Place.objects.raw. > >> > >> > > >> > On Wednesday, July 17, 2013 9:47:25 PM UTC+7, [email protected]: > >> >> > >> >> On Wed, Jul 17, 2013 at 8:24 AM, spondbob squelpen < > [email protected]> > >> >> wrote: > >> >> > I have problem in django using query statement "like %s%" with > >> >> > Model.objects.raw(). I guess the problem is on '%' character but i > >> >> > don't > >> >> > know where is it. Here's my model's code: > >> >> > > >> >> > def listInRange(self, placeLat, placeLng, typeId, range, > >> >> > placeTag): > >> >> > tags = '' > >> >> > if placeTag: > >> >> > tags = "AND (placeTag LIKE '%" + "%' OR placeTag LIKE > >> >> > '%".join(placeTag.split(',')) + "%')" > >> >> > > >> >> > query = "SELECT *, \ > >> >> > ( \ > >> >> > 6371000 * \ > >> >> > acos( \ > >> >> > cos( radians(%s) ) * \ > >> >> > cos( radians(placeLat) ) * \ > >> >> > cos( radians(placeLng) - radians(%s) ) + \ > >> >> > sin( radians(%s) ) * \ > >> >> > sin( radians(placeLat) ) \ > >> >> > ) \ > >> >> > ) AS placeDistance, \ > >> >> > COUNT(r.reviewId) as placeReviews, \ > >> >> > > >> >> > > >> >> > > >> >> > > (SUM(r.reviewPointPrice)/COUNT(r.reviewId)+SUM(r.reviewPointService)/COUNT(r.reviewId)+SUM(r.reviewPointLocation)/COUNT(r.reviewId)+SUM(r.reviewPointCondition)/COUNT(r.reviewId)+SUM(r.reviewPointComfort)/COUNT(r.reviewId))/5 > > > >> >> > AS averagePoint \ > >> >> > FROM place_place p \ > >> >> > LEFT JOIN review_review r \ > >> >> > ON r.reviewPlace_id = p.placeId\ > >> >> > WHERE placeType_id = %s %s \ > >> >> > GROUP BY p.placeId \ > >> >> > HAVING placeDistance < %s \ > >> >> > ORDER BY placeDistance" > >> >> > > >> >> > return Place.objects.raw(query, [placeLat, placeLng, > >> >> > placeLat, > >> >> > typeId, tags, range]) > >> >> > > >> >> > If placeTag is not empty, then it will added to the WHERE > condition. > >> >> > When > >> >> > the placeTag is empty there's no such problem, but when placeTag > is > >> >> > not > >> >> > empty i got this error : > >> >> > > >> >> > Warning: Truncated incorrect DOUBLE value: '1AND (placeTag > LIKE > >> >> > '%cafe%' > >> >> > OR placeTag LIKE '%pub%')' > >> >> > > >> >> > I guess python make '1 AND (placeTag LIKE '%cafe%' OR placeTag > LIKE > >> >> > '%pub%')' as the value for placeType_id. How can i make the value > of > >> >> > placeType_id=1 and add the AND statement? What's the better way to > >> >> > write > >> >> > the > >> >> > sql statement using Model.objects.raw() with 'like' statement? > >> >> > >> >> You need '%%' when you want to end up with '%' > >> > > >> > -- > >> > You received this message because you are subscribed to the Google > >> > Groups > >> > "Django users" group. > >> > To unsubscribe from this group and stop receiving emails from it, > send > >> > an > >> > email to [email protected]. > >> > To post to this group, send email to [email protected]. > >> > Visit this group at http://groups.google.com/group/django-users. > >> > For more options, visit https://groups.google.com/groups/opt_out. > >> > > >> > > > > > -- > > You received this message because you are subscribed to the Google > Groups > > "Django users" group. > > To unsubscribe from this group and stop receiving emails from it, send > an > > email to [email protected] <javascript:>. > > To post to this group, send email to > > [email protected]<javascript:>. > > > Visit this group at http://groups.google.com/group/django-users. > > For more options, visit https://groups.google.com/groups/opt_out. > > > > >
-- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/django-users. For more options, visit https://groups.google.com/groups/opt_out.

