нужно найти цену на каждый товар в каждом месте на текущую дату. Поскольку существует много цен на одну и ту же комбинацию item/location, используйте значения sales_retail, наиболее близкие к текущей дате, то есть последняя action_date, которая <= текущая дата).
SELECT *, DiffDays (ACTION_DATE) AS D
FROM `table`
WHERE ACTION_DATE <= CURRENT_DATE
GROUP BY ITEM, LOCATION
ORDER BY D
/*LIMIT 10*/ /* Лимит кол-ва "ближайших" дат...если нужно, то раскомментировать...*/
<?php
$ar1 = [
[28],
[28, 29]
];
$ar2 = [28, 29];
$arRes = [];
$arResult = [];
foreach($ar1 as $arItems) {
foreach($arItems as $item) {
if(in_array($item, $ar2))
if(!isset($arRes[$item]))
$arRes[$item] = 1;
else
$arRes[$item]++;
}
}
$allAr1 = count($ar1);
foreach($arRes as $k => $v)
if($v >= $allAr1)
$arResult[] = $k;
print_r($arResult);
<?php
// Если прям банально...то так тупо можно:
// ВАРИАНТ 1
$str = str_replace('х', 'x', '6x6'); // В первом случае "х" - русская, во втором - английская
// И в запросе:
$sql = "SELECT * FROM `table` WHERE REPLACE(`field`, 'х', 'x') = '".$str."'"; // В первом случае "х" - русская, во втором - английская
// ВАРИАНТ 2
//В запросе:
$sql = "SELECT * FROM `table` WHERE REPLACE(`field`, 'х', 'x') = REPLACE('6x6', 'х', 'x')"; // В первом случае "х" - русская, во втором - английская
// P.S.: Не указано какая БД...я отталкивался от MySQL, если что...
Частенько у меня проблемки с датами в работе..
Задав вопрос "какая БД быстрее", получишь ответ: "зависит от задачи".