Для этой операции используйте соединение .
SELECT r.titulo
FROM recetas r
JOIN recetas-categorias rc
ON r.idreceta = rc.idreceta
JOIN categorias c
ON rc.idcategoria = c.id
AND c.categoria="Internacional"
или
SELECT r.titulo
FROM recetas r,
recetas-categorias rc,
categorias c
WHERE r.idreceta = rc.idreceta
AND rc.idcategoria = c.id
AND c.categoria="Internacional"
Это будет делать то, что вы хотите, преобразовывая все в строки (в частности, преобразовывая null в пустую строку) и позволяя встроенному в JavaScript сравнению строк выполнять свою работу:
arr2.sort( function(a, b)
{
/*
We avoid reuse of arguments variables in a sort
comparison function because of a bug in IE <= 8.
See http://www.zachleat.com/web/array-sort/
*/
var va = (a === null) ? "" : "" + a,
vb = (b === null) ? "" : "" + b;
return va > vb ? 1 : ( va === vb ? 0 : -1 );
} );
мы можем сделать это самый простой путь
sort: (a, b) => {
a = a.name || '';
b = b.name || '';
return a.localeCompare(b);
}
[null, "b", "c", "d", null, "e", 0, "g", null, 0, "h", "i", "l", "m", "n", "o", "p", "ne", "nur", "nimbus"].sort(function (a,b) {
return a === null ? -1 : b === null ? 1 : a.toString().localeCompare(b);
});
Используйте настраиваемую функцию упорядочивания, которая таким образом обрабатывает нулевые значения.
arr1.sort(function(a, b) {
if (a===null) a='';
if (b===null) b='';
if (''+a < ''+b) return -1;
if (''+a > ''+b) return 1;
return 0;
});
Браузер делает null.toString(); так как null - это объект, это практически Object.toString()... который вернет "null"
Передайте параметр для сортировки, как вашу функцию сравнения [если функция возвращает что-то большее, чем 0, b сортируется ниже, чем a]
Функция в основном будет такой:
comparisonFunc = function(a, b)
{
if((a === null) && (b === null)) return 0; //they're both null and equal
else if((a === null) && (b != null)) return -1; //move a downwards
else if((a != null) && (b === null)) return 1; //move b downwards
else{
//Lexicographical sorting goes here
}
}
set.sort(comparisonFunc);
Вы можете передать сортировке sortfunction
array.sort(sortfunction)
, где sortfunction выполняет необходимое сравнение (регулярная сортировка с нулевыми значениями больше, чем у других)