С какой степенью детализации я могу получить доступ к основной памяти с помощью указателей?

Я бы предложил серию подзапросов:

select id, substring_index(suggestions, ',', 1) as suggestion, 1
from example
where suggestions is not null
union all
select id, substring_index(substring_index(suggestions, ',', 2), ',', -1) as suggestion, 2
from example
where suggestions like '%,%'
union all
select id, substring_index(substring_index(suggestions, ',', 3), ',', -1) as suggestion, 3
from example
where suggestions like '%,%,%'
union all
select id, substring_index(substring_index(suggestions, ',', 4), ',', -1) as suggestion, 4
from example
where suggestions like '%,%,%,%'
union all
select id, substring_index(substring_index(suggestions, ',', 5), ',', -1) as suggestion, 5
from example
where suggestions like '%,%,%,%,%';

Это можно легко расширить, если у вас более 5 опций на один идентификатор.

-1
задан user332336 19 January 2019 в 19:14
поделиться

1 ответ

Адреса в любом компьютере являются байтовыми адресами. Невозможно иметь меньшую степень детализации при рассмотрении доступа к памяти.

Вы можете полностью получить доступ к последовательным байтам в памяти, увеличив указатель, но у вас должен быть указатель на байты (например, char или unsigned char в C).

Если ваш указатель указывает на объект другого типа (целые числа, числа с плавающей запятой, структуры и т. Д.), Увеличение указателя приведет вас к следующему объекту. Например, если p является указателем на int (4 байта), p ++ добавит к p размер int (4).

Google «арифметика указателей», если не знакома с этими понятиями.

0
ответ дан Alain Merigot 19 January 2019 в 19:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: