Итак, у меня есть оператор SELECT, подобный этому:
SELECT
POSITION(
'^email' IN b.form) + CHAR_LENGTH('^email...') as 'email_start',
LOCATE('~',b.form, POSITION(
'^email' IN b.form) + CHAR_LENGTH('^email...')) as 'email_end',
(LOCATE('~',b.form, POSITION(
'^email' IN b.form) + CHAR_LENGTH('^email...')) -
POSITION(
'^email' IN b.form) + CHAR_LENGTH('^email...')) as 'num_chars',
b.form as 'Form'
FROM
f98_bookingdates as bd
JOIN
f98_booking as b
on b.booking_id = bd.booking_id
LIMIT 20
И он возвращает:
email_start email_end num_chars
444 474 48
email_start правильный. email_end правильный.
Но 474 - 444 - это не 48 ...
Любая помощь будет оценена ...